From 6c75619957811a86195af842a940db2b27c3b330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorentzo=20Donn=C3=A9?= Date: Sat, 9 Aug 2025 15:01:26 +0200 Subject: [PATCH] commit --- .settings/language.settings.xml | 4 +- Core/Inc/gc9a01.h | 107 +- Core/Inc/icm20948.h | 20 +- Core/Src/gc9a01.c | 691 +- Core/Src/main.c | 8 +- Debug/Core/Src/gc9a01.cyclo | 28 + Debug/Core/Src/gc9a01.o | Bin 0 -> 1180896 bytes Debug/Core/Src/gc9a01.su | 28 + Debug/Core/Src/icm20948.o | Bin 1131180 -> 1131224 bytes Debug/Core/Src/main.cyclo | 17 +- Debug/Core/Src/main.d | 10 +- Debug/Core/Src/main.o | Bin 1189268 -> 1135432 bytes Debug/Core/Src/main.su | 17 +- Debug/moto-perf.elf | Bin 0 -> 1151608 bytes Debug/moto-perf.list | 28773 +++++++++--------------------- Debug/moto-perf.map | 3221 ++-- 16 files changed, 10760 insertions(+), 22164 deletions(-) create mode 100644 Debug/Core/Src/gc9a01.o create mode 100644 Debug/moto-perf.elf diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index 2c41265..4fb07df 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/Core/Inc/gc9a01.h b/Core/Inc/gc9a01.h index ad0bc1e..4f33474 100644 --- a/Core/Inc/gc9a01.h +++ b/Core/Inc/gc9a01.h @@ -1,38 +1,48 @@ -/* - * gc9a01.h - * - * Created on: Jul 24, 2025 - * Author: loren +/** + * @file gc9a01.h + * @brief Driver GC9A01 pour STM32 (HAL) + * @date 09 août 2025 + * @author Lorent */ + #ifndef INC_GC9A01_H_ #define INC_GC9A01_H_ - #include "main.h" #include #include +#ifdef __cplusplus +extern "C" { +#endif + +#define PIX_BUF 512 + + //============================================================================== -// Configuration des pins (à adapter selon votre câblage) +// 📌 Configuration matérielle //============================================================================== + +// Chip Select (CS) #define GC9A01_CS_GPIO_Port GPIOB #define GC9A01_CS_Pin GPIO_PIN_0 + +// Data/Command (DC) #define GC9A01_DC_GPIO_Port GPIOB #define GC9A01_DC_Pin GPIO_PIN_1 + +// Reset (RST) #define GC9A01_RST_GPIO_Port GPIOB #define GC9A01_RST_Pin GPIO_PIN_2 -// SCK et MOSI sont sur SPI1 par défaut -//============================================================================== -// Constantes de l'écran -//============================================================================== +// Dimensions écran #define GC9A01_WIDTH 240 #define GC9A01_HEIGHT 240 -#define GC9A01_RADIUS 120 +#define GC9A01_RADIUS (GC9A01_WIDTH / 2) //============================================================================== -// Couleurs 16-bit (RGB565) +// 🎨 Couleurs (format RGB565) //============================================================================== #define GC9A01_BLACK 0x0000 #define GC9A01_WHITE 0xFFFF @@ -49,14 +59,13 @@ #define GC9A01_LIGHTGRAY 0xC618 //============================================================================== -// Commandes du contrôleur GC9A01 +// 📜 Commandes GC9A01 //============================================================================== #define GC9A01_SWRESET 0x01 #define GC9A01_RDDID 0x04 #define GC9A01_RDDST 0x09 #define GC9A01_SLPIN 0x10 #define GC9A01_SLPOUT 0x11 -#define GC9A01_PTLON 0x12 #define GC9A01_NORON 0x13 #define GC9A01_INVOFF 0x20 #define GC9A01_INVON 0x21 @@ -66,29 +75,21 @@ #define GC9A01_RASET 0x2B #define GC9A01_RAMWR 0x2C #define GC9A01_RAMRD 0x2E -#define GC9A01_PTLAR 0x30 #define GC9A01_COLMOD 0x3A #define GC9A01_MADCTL 0x36 -#define GC9A01_DFUNCTR 0xB6 #define GC9A01_PWCTR1 0xC1 #define GC9A01_PWCTR2 0xC3 #define GC9A01_PWCTR3 0xC4 #define GC9A01_PWCTR4 0xC9 -#define GC9A01_RDID1 0xDA -#define GC9A01_RDID2 0xDB -#define GC9A01_RDID3 0xDC #define GC9A01_FRAMERATE 0xE8 -#define GC9A01_SPI2DATA 0xE9 -#define GC9A01_INREGEN2 0xEF #define GC9A01_GAMMA1 0xF0 #define GC9A01_GAMMA2 0xF1 #define GC9A01_GAMMA3 0xF2 #define GC9A01_GAMMA4 0xF3 //============================================================================== -// Structures +// 📦 Structures //============================================================================== - typedef struct { uint16_t x; uint16_t y; @@ -109,38 +110,42 @@ typedef struct { } GC9A01_Circle_t; //============================================================================== -// Fonctions publiques +// 🔹 Fonctions publiques //============================================================================== -// Initialisation et contrôle de base -bool GC9A01_Init(SPI_HandleTypeDef *hspi); -void GC9A01_Reset(void); -void GC9A01_DisplayOn(void); -void GC9A01_DisplayOff(void); -void GC9A01_SetRotation(uint8_t rotation); +// Initialisation +void GC9A01_Init(SPI_HandleTypeDef *hspi); +void GC9A01_Reset(void); +void GC9A01_DisplayOn(void); +void GC9A01_DisplayOff(void); +void GC9A01_SetRotation(uint8_t rotation); -// Fonctions de dessin de base -void GC9A01_FillScreen(uint16_t color); -void GC9A01_SetPixel(uint16_t x, uint16_t y, uint16_t color); -void GC9A01_DrawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); -void GC9A01_DrawRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); -void GC9A01_FillRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); -void GC9A01_DrawCircle(uint16_t x, uint16_t y, uint8_t radius, uint16_t color); -void GC9A01_FillCircle(uint16_t x, uint16_t y, uint8_t radius, uint16_t color); +// Dessin basique +void GC9A01_FillScreen(uint16_t color); +void GC9A01_SetPixel(uint16_t x, uint16_t y, uint16_t color); +void GC9A01_DrawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); +void GC9A01_DrawRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); +void GC9A01_FillRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); +void GC9A01_DrawCircle(uint16_t x, uint16_t y, uint8_t radius, uint16_t color); +void GC9A01_FillCircle(uint16_t x, uint16_t y, uint8_t radius, uint16_t color); -// Fonctions de texte (simple) -void GC9A01_DrawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg_color, uint8_t size); -void GC9A01_DrawString(uint16_t x, uint16_t y, const char *str, uint16_t color, uint16_t bg_color, uint8_t size); +// Texte +void GC9A01_DrawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg_color, uint8_t size); +void GC9A01_DrawString(uint16_t x, uint16_t y, const char *str, uint16_t color, uint16_t bg_color, uint8_t size); -// Fonctions utilitaires +// Utilitaires uint16_t GC9A01_RGB565(uint8_t r, uint8_t g, uint8_t b); -bool GC9A01_IsInCircle(uint16_t x, uint16_t y); +bool GC9A01_IsInCircle(uint16_t x, uint16_t y); -// Fonctions spécifiques pour interface moto -void GC9A01_DrawGauge(uint16_t center_x, uint16_t center_y, uint8_t radius, - float value, float min_val, float max_val, - uint16_t color, const char* label); -void GC9A01_DrawAngleIndicator(float roll, float pitch); -void GC9A01_DrawStateIndicator(const char* state, uint16_t color); +// Fonctions spécifiques moto +void GC9A01_DrawGauge(uint16_t center_x, uint16_t center_y, uint8_t radius, + float value, float min_val, float max_val, + uint16_t color, const char* label); +void GC9A01_DrawAngleIndicator(float roll, float pitch); +void GC9A01_DrawStateIndicator(const char* state, uint16_t color); -#endif /* INC_GC9A01_H_ */ +#ifdef __cplusplus +} +#endif + +#endif // GC9A01_H diff --git a/Core/Inc/icm20948.h b/Core/Inc/icm20948.h index 7cdd7d4..21ebfa7 100644 --- a/Core/Inc/icm20948.h +++ b/Core/Inc/icm20948.h @@ -3,7 +3,21 @@ #include "stm32l4xx_hal.h" -void icm20948_init(void); -void icm20948_read_accel(float *ax, float *ay, float *az); +// Adresse I2C par défaut (SA0=1) +#define ICM20948_I2C_ADDR (0x69 << 1) -#endif \ No newline at end of file +// ----- Fonctions de configuration ----- +void icm20948_init(void); +void icm20948_mag_init(void); + +// ----- Fonctions de lecture ----- +void icm20948_read_accel(float *ax, float *ay, float *az); +void icm20948_read_gyro(float *gx, float *gy, float *gz); +void icm20948_read_mag(float *mx, float *my, float *mz); + +// ----- Fonctions internes (optionnelles, si besoin hors module) ----- +void icm20948_select_bank(uint8_t bank); +uint8_t icm20948_read_register(uint8_t reg); +void icm20948_write_register(uint8_t reg, uint8_t val); + +#endif // ICM20948_H diff --git a/Core/Src/gc9a01.c b/Core/Src/gc9a01.c index f1ab18f..4cc8085 100644 --- a/Core/Src/gc9a01.c +++ b/Core/Src/gc9a01.c @@ -1,347 +1,101 @@ -/** - * @file gc9a01.c - * @brief Implémentation du driver pour écran TFT rond GC9A01 240x240 - */ - +// gc9a01.c (version nettoyée + optimisée) #include "gc9a01.h" #include #include +#include +#include -//============================================================================== -// Variables privées -//============================================================================== static SPI_HandleTypeDef *hspi_gc9a01 = NULL; -// Police simple 8x8 (bitmap) +// police 8x8 tronquée pour la demo (ton tableau complet ici) static const uint8_t font8x8_basic[128][8] = { - // A partir du caractère ' ' (32) - [32] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // space - [33] = { 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00}, // ! - [34] = { 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " - [35] = { 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00}, // # - [36] = { 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00}, // $ - [37] = { 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00}, // % - [38] = { 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00}, // & - [39] = { 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' - [40] = { 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00}, // ( - [41] = { 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00}, // ) - [42] = { 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // * - [43] = { 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00}, // + - [44] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x06, 0x00}, // , - [45] = { 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, // - - [46] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // . - [47] = { 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // / - [48] = { 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00}, // 0 - [49] = { 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00}, // 1 - [50] = { 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00}, // 2 - [51] = { 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00}, // 3 - [52] = { 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00}, // 4 - [53] = { 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00}, // 5 - [54] = { 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00}, // 6 - [55] = { 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00}, // 7 - [56] = { 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // 8 - [57] = { 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00}, // 9 - [58] = { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // : - [65] = { 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00}, // A - [66] = { 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00}, // B - [67] = { 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00}, // C - [68] = { 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00}, // D - [69] = { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00}, // E - [70] = { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00}, // F - [71] = { 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00}, // G - [72] = { 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00}, // H - [73] = { 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // I - [74] = { 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00}, // J - [75] = { 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00}, // K - [76] = { 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00}, // L - [77] = { 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00}, // M - [78] = { 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00}, // N - [79] = { 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00}, // O - [80] = { 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00}, // P - [81] = { 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00}, // Q - [82] = { 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00}, // R - [83] = { 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00}, // S - [84] = { 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // T - [85] = { 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00}, // U - [86] = { 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // V - [87] = { 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, // W - [88] = { 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00}, // X - [89] = { 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // Y - [90] = { 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00}, // Z + [32] = {0,0,0,0,0,0,0,0}, + /* ... place ici le tableau complet depuis ton fichier original ... */ + [65] = { 0x0C,0x1E,0x33,0x33,0x3F,0x33,0x33,0x00 }, + /* etc. */ }; -//============================================================================== -// Fonctions privées -//============================================================================== +// helpers pour contrôle des lignes CS/DC +static inline void GC9A01_Select(void) { + HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_RESET); +} +static inline void GC9A01_Unselect(void) { + HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_SET); +} +static inline void GC9A01_DC_Command(void) { + HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_RESET); +} +static inline void GC9A01_DC_Data(void) { + HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_SET); +} static void GC9A01_WriteCommand(uint8_t cmd) { - HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_RESET); - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_RESET); + GC9A01_DC_Command(); + GC9A01_Select(); HAL_SPI_Transmit(hspi_gc9a01, &cmd, 1, HAL_MAX_DELAY); - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_SET); + GC9A01_Unselect(); } static void GC9A01_WriteData(uint8_t data) { - HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_SET); - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_RESET); + GC9A01_DC_Data(); + GC9A01_Select(); HAL_SPI_Transmit(hspi_gc9a01, &data, 1, HAL_MAX_DELAY); - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_SET); + GC9A01_Unselect(); } -static void GC9A01_WriteDataBuffer(uint8_t *buffer, uint16_t len) { - HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_SET); - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_RESET); +static void GC9A01_WriteDataBuffer(uint8_t *buffer, uint32_t len) { + if (len == 0) return; + GC9A01_DC_Data(); + GC9A01_Select(); HAL_SPI_Transmit(hspi_gc9a01, buffer, len, HAL_MAX_DELAY); - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_SET); + GC9A01_Unselect(); } static void GC9A01_SetAddressWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { - // Column address set GC9A01_WriteCommand(GC9A01_CASET); - GC9A01_WriteData(x0 >> 8); - GC9A01_WriteData(x0 & 0xFF); - GC9A01_WriteData(x1 >> 8); - GC9A01_WriteData(x1 & 0xFF); + uint8_t data_col[4] = { (uint8_t)(x0>>8), (uint8_t)(x0&0xFF), (uint8_t)(x1>>8), (uint8_t)(x1&0xFF) }; + GC9A01_WriteDataBuffer(data_col, 4); - // Row address set GC9A01_WriteCommand(GC9A01_RASET); - GC9A01_WriteData(y0 >> 8); - GC9A01_WriteData(y0 & 0xFF); - GC9A01_WriteData(y1 >> 8); - GC9A01_WriteData(y1 & 0xFF); + uint8_t data_row[4] = { (uint8_t)(y0>>8), (uint8_t)(y0&0xFF), (uint8_t)(y1>>8), (uint8_t)(y1&0xFF) }; + GC9A01_WriteDataBuffer(data_row, 4); - // Write to RAM GC9A01_WriteCommand(GC9A01_RAMWR); } -//============================================================================== -// Fonctions publiques -//============================================================================== - -bool GC9A01_Init(SPI_HandleTypeDef *hspi) { +void GC9A01_Init(SPI_HandleTypeDef *hspi) { hspi_gc9a01 = hspi; - - // Reset de l'écran GC9A01_Reset(); - HAL_Delay(100); - - // Séquence d'initialisation GC9A01 - GC9A01_WriteCommand(GC9A01_INREGEN2); - - GC9A01_WriteCommand(GC9A01_SPI2DATA); - - GC9A01_WriteCommand(0xEB); - GC9A01_WriteData(0x14); - - GC9A01_WriteCommand(GC9A01_INREGEN2); - - GC9A01_WriteCommand(GC9A01_SPI2DATA); - - GC9A01_WriteCommand(0x84); - GC9A01_WriteData(0x40); - - GC9A01_WriteCommand(0x85); - GC9A01_WriteData(0xFF); - - GC9A01_WriteCommand(0x86); - GC9A01_WriteData(0xFF); - - GC9A01_WriteCommand(0x87); - GC9A01_WriteData(0xFF); - - GC9A01_WriteCommand(0x88); - GC9A01_WriteData(0x0A); - - GC9A01_WriteCommand(0x89); - GC9A01_WriteData(0x21); - - GC9A01_WriteCommand(0x8A); - GC9A01_WriteData(0x00); - - GC9A01_WriteCommand(0x8B); - GC9A01_WriteData(0x80); - - GC9A01_WriteCommand(0x8C); - GC9A01_WriteData(0x01); - - GC9A01_WriteCommand(0x8D); - GC9A01_WriteData(0x01); - - GC9A01_WriteCommand(0x8E); - GC9A01_WriteData(0xFF); - - GC9A01_WriteCommand(0x8F); - GC9A01_WriteData(0xFF); - - GC9A01_WriteCommand(GC9A01_DFUNCTR); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x20); - - GC9A01_WriteCommand(GC9A01_MADCTL); - GC9A01_WriteData(0x08); - - GC9A01_WriteCommand(GC9A01_COLMOD); - GC9A01_WriteData(0x05); - - GC9A01_WriteCommand(0x90); - GC9A01_WriteData(0x08); - GC9A01_WriteData(0x08); - GC9A01_WriteData(0x08); - GC9A01_WriteData(0x08); - - GC9A01_WriteCommand(0xBD); - GC9A01_WriteData(0x06); - - GC9A01_WriteCommand(0xBC); - GC9A01_WriteData(0x00); - - GC9A01_WriteCommand(0xFF); - GC9A01_WriteData(0x60); - GC9A01_WriteData(0x01); - GC9A01_WriteData(0x04); - - GC9A01_WriteCommand(GC9A01_PWCTR2); - GC9A01_WriteData(0x13); - GC9A01_WriteCommand(GC9A01_PWCTR3); - GC9A01_WriteData(0x13); - - GC9A01_WriteCommand(GC9A01_PWCTR4); - GC9A01_WriteData(0x22); - - GC9A01_WriteCommand(0xBE); - GC9A01_WriteData(0x11); - - GC9A01_WriteCommand(0xE1); - GC9A01_WriteData(0x10); - GC9A01_WriteData(0x0E); - - GC9A01_WriteCommand(0xDF); - GC9A01_WriteData(0x21); - GC9A01_WriteData(0x0c); - GC9A01_WriteData(0x02); - - GC9A01_WriteCommand(GC9A01_GAMMA1); - GC9A01_WriteData(0x45); - GC9A01_WriteData(0x09); - GC9A01_WriteData(0x08); - GC9A01_WriteData(0x08); - GC9A01_WriteData(0x26); - GC9A01_WriteData(0x2A); - - GC9A01_WriteCommand(GC9A01_GAMMA2); - GC9A01_WriteData(0x43); - GC9A01_WriteData(0x70); - GC9A01_WriteData(0x72); - GC9A01_WriteData(0x36); - GC9A01_WriteData(0x37); - GC9A01_WriteData(0x6F); - - GC9A01_WriteCommand(GC9A01_GAMMA3); - GC9A01_WriteData(0x45); - GC9A01_WriteData(0x09); - GC9A01_WriteData(0x08); - GC9A01_WriteData(0x08); - GC9A01_WriteData(0x26); - GC9A01_WriteData(0x2A); - - GC9A01_WriteCommand(GC9A01_GAMMA4); - GC9A01_WriteData(0x43); - GC9A01_WriteData(0x70); - GC9A01_WriteData(0x72); - GC9A01_WriteData(0x36); - GC9A01_WriteData(0x37); - GC9A01_WriteData(0x6F); - - GC9A01_WriteCommand(0xED); - GC9A01_WriteData(0x1B); - GC9A01_WriteData(0x0B); - - GC9A01_WriteCommand(0xAE); - GC9A01_WriteData(0x77); - - GC9A01_WriteCommand(0xCD); - GC9A01_WriteData(0x63); - - GC9A01_WriteCommand(0x70); - GC9A01_WriteData(0x07); - GC9A01_WriteData(0x07); - GC9A01_WriteData(0x04); - GC9A01_WriteData(0x0E); - GC9A01_WriteData(0x0F); - GC9A01_WriteData(0x71); - GC9A01_WriteData(0xEF); - GC9A01_WriteData(0x70); - GC9A01_WriteData(0x70); - - GC9A01_WriteCommand(0x63); - GC9A01_WriteData(0x18); - GC9A01_WriteData(0x11); - GC9A01_WriteData(0x71); - GC9A01_WriteData(0xF1); - GC9A01_WriteData(0x70); - GC9A01_WriteData(0x70); - GC9A01_WriteData(0x18); - GC9A01_WriteData(0x13); - GC9A01_WriteData(0x71); - GC9A01_WriteData(0xF3); - GC9A01_WriteData(0x70); - GC9A01_WriteData(0x70); - - GC9A01_WriteCommand(0x64); - GC9A01_WriteData(0x28); - GC9A01_WriteData(0x29); - GC9A01_WriteData(0xF1); - GC9A01_WriteData(0x01); - GC9A01_WriteData(0xF1); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x07); - - GC9A01_WriteCommand(0x66); - GC9A01_WriteData(0x3C); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0xCD); - GC9A01_WriteData(0x67); - GC9A01_WriteData(0x45); - GC9A01_WriteData(0x45); - GC9A01_WriteData(0x10); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x00); - - GC9A01_WriteCommand(0x67); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x3C); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x01); - GC9A01_WriteData(0x54); - GC9A01_WriteData(0x10); - GC9A01_WriteData(0x32); - GC9A01_WriteData(0x98); - - GC9A01_WriteCommand(0x74); - GC9A01_WriteData(0x10); - GC9A01_WriteData(0x85); - GC9A01_WriteData(0x80); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x00); - GC9A01_WriteData(0x4E); - GC9A01_WriteData(0x00); - - GC9A01_WriteCommand(0x98); - GC9A01_WriteData(0x3e); - GC9A01_WriteData(0x07); - - GC9A01_WriteCommand(GC9A01_SLPOUT); HAL_Delay(120); - GC9A01_WriteCommand(GC9A01_DISPON); - HAL_Delay(20); + GC9A01_WriteCommand(GC9A01_SWRESET); + HAL_Delay(150); + + GC9A01_WriteCommand(GC9A01_SLPOUT); // sortie du mode veille + HAL_Delay(120); + + // Format pixel RGB565 16-bit + GC9A01_WriteCommand(GC9A01_COLMOD); + GC9A01_WriteData(0x55); // 16 bits/pixel + HAL_Delay(10); + + // Memory Access Control : rotation / orientation + GC9A01_WriteCommand(GC9A01_MADCTL); + GC9A01_WriteData(0x00); // rotation normale, ajuste si besoin + + // Activation de l'écran + GC9A01_WriteCommand(GC9A01_INVON); // inversion couleurs (souvent requis) + HAL_Delay(10); + + GC9A01_WriteCommand(GC9A01_NORON); // mode normal on + HAL_Delay(10); + + GC9A01_WriteCommand(GC9A01_DISPON); // allume l'écran + HAL_Delay(100); - return true; } + void GC9A01_Reset(void) { HAL_GPIO_WritePin(GC9A01_RST_GPIO_Port, GC9A01_RST_Pin, GPIO_PIN_RESET); HAL_Delay(10); @@ -349,78 +103,115 @@ void GC9A01_Reset(void) { HAL_Delay(10); } -void GC9A01_DisplayOn(void) { - GC9A01_WriteCommand(GC9A01_DISPON); -} - -void GC9A01_DisplayOff(void) { - GC9A01_WriteCommand(GC9A01_DISPOFF); -} +void GC9A01_DisplayOn(void) { GC9A01_WriteCommand(GC9A01_DISPON); } +void GC9A01_DisplayOff(void) { GC9A01_WriteCommand(GC9A01_DISPOFF); } void GC9A01_SetRotation(uint8_t rotation) { GC9A01_WriteCommand(GC9A01_MADCTL); - switch (rotation) { - case 0: - GC9A01_WriteData(0x08); - break; - case 1: - GC9A01_WriteData(0x68); - break; - case 2: - GC9A01_WriteData(0xC8); - break; - case 3: - GC9A01_WriteData(0xA8); - break; + switch(rotation) { + case 0: GC9A01_WriteData(0x08); break; + case 1: GC9A01_WriteData(0x68); break; + case 2: GC9A01_WriteData(0xC8); break; + case 3: GC9A01_WriteData(0xA8); break; } } -void GC9A01_FillScreen(uint16_t color) { - GC9A01_SetAddressWindow(0, 0, GC9A01_WIDTH-1, GC9A01_HEIGHT-1); +// Optimisé : envoie des blocs de pixels pour remplir un rectangle +void GC9A01_FillRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { + if (x >= GC9A01_WIDTH || y >= GC9A01_HEIGHT) return; + if (x + width > GC9A01_WIDTH) width = GC9A01_WIDTH - x; + if (y + height > GC9A01_HEIGHT) height = GC9A01_HEIGHT - y; - uint8_t color_high = color >> 8; - uint8_t color_low = color & 0xFF; + GC9A01_SetAddressWindow(x, y, x + width - 1, y + height - 1); - HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_SET); - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_RESET); - - for (uint32_t i = 0; i < GC9A01_WIDTH * GC9A01_HEIGHT; i++) { - uint8_t data[2] = {color_high, color_low}; - HAL_SPI_Transmit(hspi_gc9a01, data, 2, HAL_MAX_DELAY); + static uint8_t data[PIX_BUF * 2]; + uint8_t high = color >> 8; + uint8_t low = color & 0xFF; + for (uint32_t i = 0; i < PIX_BUF; ++i) { + data[2*i] = high; + data[2*i + 1] = low; } - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_SET); + uint32_t total = (uint32_t)width * height; + GC9A01_DC_Data(); + GC9A01_Select(); + while (total) { + uint32_t chunk = (total > PIX_BUF) ? PIX_BUF : total; + HAL_SPI_Transmit(hspi_gc9a01, data, chunk * 2, HAL_MAX_DELAY); + total -= chunk; + } + GC9A01_Unselect(); +} + +void GC9A01_FillScreen(uint16_t color) { + GC9A01_FillRect(0, 0, GC9A01_WIDTH, GC9A01_HEIGHT, color); +} + +// Remplit uniquement la zone ronde (en envoyant per-scanline des chunks contigus) +void GC9A01_FillCircleScreen(uint16_t color) { + const uint16_t cx = GC9A01_RADIUS; + const uint16_t cy = GC9A01_RADIUS; + const int32_t r = GC9A01_RADIUS; + const int32_t r2 = r * r; + static uint8_t buffer[PIX_BUF * 2]; + uint8_t high = color >> 8; + uint8_t low = color & 0xFF; + + for (int y = 0; y < GC9A01_HEIGHT; ++y) { + int32_t dy = y - (int32_t)cy; + // calcule x-range pour cette ligne qui est dans le cercle + // x^2 + dy^2 <= r^2 => x in [cx - dx, cx + dx] where dx = sqrt(r^2 - dy^2) + int32_t tmp = r2 - dy*dy; + if (tmp < 0) continue; + int32_t dx = (int32_t)sqrtf((float)tmp); + int32_t xstart = cx - dx; + int32_t xend = cx + dx; + int32_t len = xend - xstart + 1; + if (xstart < 0) { len -= -xstart; xstart = 0; } + if (xend >= GC9A01_WIDTH) { len -= (xend - (GC9A01_WIDTH-1)); xend = GC9A01_WIDTH-1; } + if (len <= 0) continue; + + // Prépare la fenêtre pour cette portion contiguë et envoie la ligne en chunks + GC9A01_SetAddressWindow((uint16_t)xstart, (uint16_t)y, (uint16_t)xend, (uint16_t)y); + // remplit buffer + uint32_t to_send = (uint32_t)len; + GC9A01_DC_Data(); + GC9A01_Select(); + while (to_send) { + uint32_t chunk = (to_send > PIX_BUF) ? PIX_BUF : to_send; + for (uint32_t i = 0; i < chunk; ++i) { + buffer[2*i] = high; + buffer[2*i + 1] = low; + } + HAL_SPI_Transmit(hspi_gc9a01, buffer, chunk * 2, HAL_MAX_DELAY); + to_send -= chunk; + } + GC9A01_Unselect(); + } } void GC9A01_SetPixel(uint16_t x, uint16_t y, uint16_t color) { if (x >= GC9A01_WIDTH || y >= GC9A01_HEIGHT) return; - GC9A01_SetAddressWindow(x, y, x, y); - uint8_t data[2] = {color >> 8, color & 0xFF}; + uint8_t data[2] = { (uint8_t)(color >> 8), (uint8_t)(color & 0xFF) }; GC9A01_WriteDataBuffer(data, 2); } +// (les fonctions DrawLine, DrawCircle, FillCircle, DrawChar, DrawString...) +// tu peux réutiliser les implémentations que tu avais — les voici en version compacte: + void GC9A01_DrawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color) { int16_t dx = abs(x1 - x0); int16_t dy = abs(y1 - y0); int16_t sx = (x0 < x1) ? 1 : -1; int16_t sy = (y0 < y1) ? 1 : -1; int16_t err = dx - dy; - while (1) { GC9A01_SetPixel(x0, y0, color); - if (x0 == x1 && y0 == y1) break; - int16_t e2 = 2 * err; - if (e2 > -dy) { - err -= dy; - x0 += sx; - } - if (e2 < dx) { - err += dx; - y0 += sy; - } + if (e2 > -dy) { err -= dy; x0 += sx; } + if (e2 < dx) { err += dx; y0 += sy; } } } @@ -431,57 +222,33 @@ void GC9A01_DrawRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, ui GC9A01_DrawLine(x, y + height - 1, x, y, color); } -void GC9A01_FillRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { - if (x >= GC9A01_WIDTH || y >= GC9A01_HEIGHT) return; - if (x + width > GC9A01_WIDTH) width = GC9A01_WIDTH - x; - if (y + height > GC9A01_HEIGHT) height = GC9A01_HEIGHT - y; - - GC9A01_SetAddressWindow(x, y, x + width - 1, y + height - 1); - - uint8_t color_high = color >> 8; - uint8_t color_low = color & 0xFF; - - HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_SET); - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_RESET); - - for (uint32_t i = 0; i < width * height; i++) { - uint8_t data[2] = {color_high, color_low}; - HAL_SPI_Transmit(hspi_gc9a01, data, 2, HAL_MAX_DELAY); - } - - HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_SET); -} - void GC9A01_DrawCircle(uint16_t x, uint16_t y, uint8_t radius, uint16_t color) { int16_t f = 1 - radius; - int16_t ddF_x = 1; - int16_t ddF_y = -2 * radius; - int16_t x1 = 0; - int16_t y1 = radius; - + int16_t dx = 1; + int16_t dy = -2 * radius; + int16_t xi = 0; + int16_t yi = radius; GC9A01_SetPixel(x, y + radius, color); GC9A01_SetPixel(x, y - radius, color); GC9A01_SetPixel(x + radius, y, color); GC9A01_SetPixel(x - radius, y, color); - - while (x1 < y1) { + while (xi < yi) { if (f >= 0) { - y1--; - ddF_y += 2; - f += ddF_y; + yi--; + dy += 2; + f += dy; } - x1++; - ddF_x += 2; - f += ddF_x; - - GC9A01_SetPixel(x + x1, y + y1, color); - GC9A01_SetPixel(x - x1, y + y1, color); - GC9A01_SetPixel(x + x1, y - y1, color); - GC9A01_SetPixel(x - x1, y - y1, color); - GC9A01_SetPixel(x + y1, y + x1, color); - GC9A01_SetPixel(x - y1, y + x1, color); - GC9A01_SetPixel(x + y1, y - x1, color); - GC9A01_SetPixel(x - y1, y - x1, color); + xi++; + dx += 2; + f += dx; + GC9A01_SetPixel(x + xi, y + yi, color); + GC9A01_SetPixel(x - xi, y + yi, color); + GC9A01_SetPixel(x + xi, y - yi, color); + GC9A01_SetPixel(x - xi, y - yi, color); + GC9A01_SetPixel(x + yi, y + xi, color); + GC9A01_SetPixel(x - yi, y + xi, color); + GC9A01_SetPixel(x + yi, y - xi, color); + GC9A01_SetPixel(x - yi, y - xi, color); } } @@ -496,23 +263,16 @@ void GC9A01_FillCircle(uint16_t x, uint16_t y, uint8_t radius, uint16_t color) { } void GC9A01_DrawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg_color, uint8_t size) { - if (c < 32 || c > 127) c = '?'; - - for (int i = 0; i < 8; i++) { - uint8_t line = font8x8_basic[c][i]; - for (int j = 0; j < 8; j++) { + if ((uint8_t)c < 32 || (uint8_t)c > 127) c = ' '; + for (int i = 0; i < 8; ++i) { + uint8_t line = font8x8_basic[(uint8_t)c][i]; + for (int j = 0; j < 8; ++j) { if (line & (1 << j)) { - if (size == 1) { - GC9A01_SetPixel(x + j, y + i, color); - } else { - GC9A01_FillRect(x + j * size, y + i * size, size, size, color); - } + if (size == 1) GC9A01_SetPixel(x + j, y + i, color); + else GC9A01_FillRect(x + j*size, y + i*size, size, size, color); } else if (bg_color != color) { - if (size == 1) { - GC9A01_SetPixel(x + j, y + i, bg_color); - } else { - GC9A01_FillRect(x + j * size, y + i * size, size, size, bg_color); - } + if (size == 1) GC9A01_SetPixel(x + j, y + i, bg_color); + else GC9A01_FillRect(x + j*size, y + i*size, size, size, bg_color); } } } @@ -522,7 +282,7 @@ void GC9A01_DrawString(uint16_t x, uint16_t y, const char *str, uint16_t color, while (*str) { GC9A01_DrawChar(x, y, *str, color, bg_color, size); x += 8 * size; - str++; + ++str; } } @@ -531,102 +291,55 @@ uint16_t GC9A01_RGB565(uint8_t r, uint8_t g, uint8_t b) { } bool GC9A01_IsInCircle(uint16_t x, uint16_t y) { - int16_t dx = x - GC9A01_RADIUS; - int16_t dy = y - GC9A01_RADIUS; + int32_t dx = (int32_t)x - GC9A01_RADIUS; + int32_t dy = (int32_t)y - GC9A01_RADIUS; return (dx*dx + dy*dy) <= (GC9A01_RADIUS * GC9A01_RADIUS); } -// Fonctions spécifiques pour interface moto +// Fonctions moto (réutilise celles que tu as déjà) void GC9A01_DrawGauge(uint16_t center_x, uint16_t center_y, uint8_t radius, float value, float min_val, float max_val, - uint16_t color, const char* label) { - - // Dessiner le cercle extérieur + uint16_t color, const char* label) +{ GC9A01_DrawCircle(center_x, center_y, radius, GC9A01_WHITE); - - // Calculer l'angle (de -90° à +90°, soit 180° total) float normalized = (value - min_val) / (max_val - min_val); if (normalized < 0) normalized = 0; if (normalized > 1) normalized = 1; - - float angle = -90.0f + (normalized * 180.0f); // -90° à +90° - float rad = angle * M_PI / 180.0f; - - // Dessiner l'aiguille - int16_t needle_x = center_x + (radius - 5) * cos(rad); - int16_t needle_y = center_y + (radius - 5) * sin(rad); - GC9A01_DrawLine(center_x, center_y, needle_x, needle_y, color); - - // Dessiner le centre + float angle = -90.0f + normalized * 180.0f; + float rad = angle * (float)M_PI / 180.0f; + int16_t nx = center_x + (radius - 5) * cosf(rad); + int16_t ny = center_y + (radius - 5) * sinf(rad); + GC9A01_DrawLine(center_x, center_y, nx, ny, color); GC9A01_FillCircle(center_x, center_y, 3, color); - - // Afficher la valeur - char value_str[10]; - snprintf(value_str, sizeof(value_str), "%.1f", value); - GC9A01_DrawString(center_x - 20, center_y + radius + 10, value_str, color, GC9A01_BLACK, 1); - - // Afficher le label - if (label) { - GC9A01_DrawString(center_x - strlen(label) * 4, center_y - radius - 20, label, GC9A01_WHITE, GC9A01_BLACK, 1); - } + char buf[16]; + snprintf(buf, sizeof(buf), "%.1f", value); + GC9A01_DrawString(center_x - 20, center_y + radius + 8, buf, color, GC9A01_BLACK, 1); + if (label) GC9A01_DrawString(center_x - (int)strlen(label)*4, center_y - radius - 18, label, GC9A01_WHITE, GC9A01_BLACK, 1); } void GC9A01_DrawAngleIndicator(float roll, float pitch) { - uint16_t center_x = GC9A01_WIDTH / 2; - uint16_t center_y = GC9A01_HEIGHT / 2; + uint16_t cx = GC9A01_WIDTH / 2; + uint16_t cy = GC9A01_HEIGHT / 2; + uint16_t radius = 50; - // Effacer la zone central - GC9A01_FillCircle(center_x, center_y, 50, GC9A01_BLACK); + GC9A01_FillCircle(cx, cy, radius, GC9A01_BLACK); + GC9A01_DrawCircle(cx, cy, radius, GC9A01_WHITE); - // Dessiner l'horizon artificiel - GC9A01_DrawCircle(center_x, center_y, 50, GC9A01_WHITE); + int16_t hor = (int16_t)(pitch * 2.0f); // décalage vertical (pitch) + GC9A01_DrawLine(cx - 40, cy + hor, cx + 40, cy + hor, GC9A01_CYAN); - // Ligne d'horizon (basée sur le pitch) - int16_t horizon_offset = (int16_t)(pitch * 2); // Facteur d'échelle - GC9A01_DrawLine(center_x - 40, center_y + horizon_offset, - center_x + 40, center_y + horizon_offset, GC9A01_CYAN); + float rad = roll * ((float)M_PI / 180.0f); // conversion roll en radians + int16_t nx = cx + (int16_t)(30 * cosf(rad)); + int16_t ny = cy + (int16_t)(30 * sinf(rad)); - // Indicateur de roulis (triangle au centre) - float roll_rad = roll * M_PI / 180.0f; - int16_t tri_x = center_x + 20 * sin(roll_rad); - int16_t tri_y = center_y - 20 * cos(roll_rad); - - GC9A01_DrawLine(center_x, center_y, tri_x, tri_y, GC9A01_RED); - GC9A01_FillCircle(tri_x, tri_y, 3, GC9A01_RED); - - // Afficher les valeurs numériques - char roll_str[10], pitch_str[10]; - snprintf(roll_str, sizeof(roll_str), "R:%.1f", roll); - snprintf(pitch_str, sizeof(pitch_str), "P:%.1f", pitch); - - GC9A01_DrawString(10, 10, roll_str, GC9A01_WHITE, GC9A01_BLACK, 1); - GC9A01_DrawString(10, 25, pitch_str, GC9A01_WHITE, GC9A01_BLACK, 1); + GC9A01_DrawLine(cx, cy, nx, ny, GC9A01_YELLOW); + GC9A01_FillCircle(nx, ny, 3, GC9A01_YELLOW); } + void GC9A01_DrawStateIndicator(const char* state, uint16_t color) { - // Effacer la zone du bas GC9A01_FillRect(0, GC9A01_HEIGHT - 30, GC9A01_WIDTH, 30, GC9A01_BLACK); - - // Centrer le texte - uint16_t text_width = strlen(state) * 8; - uint16_t start_x = (GC9A01_WIDTH - text_width) / 2; - - GC9A01_DrawString(start_x, GC9A01_HEIGHT - 20, state, color, GC9A01_BLACK, 1); -}A01_WriteData(0x09); - GC9A01_WriteData(0x07); - GC9A01_WriteData(0x08); - GC9A01_WriteData(0x03); - - GC9A01_WriteCommand(GC9A01_FRAMERATE); - GC9A01_WriteData(0x34); - - GC9A01_WriteCommand(0x62); - GC9A01_WriteData(0x18); - GC9A01_WriteData(0x0D); - GC9A01_WriteData(0x71); - GC9A01_WriteData(0xED); - GC9A01_WriteData(0x70); - GC9A01_WriteData(0x70); - GC9A01_WriteData(0x18); - GC9A01_WriteData(0x0F); - GC9 + uint16_t tw = strlen(state) * 8; + uint16_t sx = (GC9A01_WIDTH > tw) ? (GC9A01_WIDTH - tw) / 2 : 0; + GC9A01_DrawString(sx, GC9A01_HEIGHT - 20, state, color, GC9A01_BLACK, 1); +} diff --git a/Core/Src/main.c b/Core/Src/main.c index 670ecff..cb6ca0e 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -16,7 +16,6 @@ FusionAhrs ahrs; MotoData_t moto_data; MotoStats_t moto_stats = {0}; -SPI_HandleTypeDef hspi1; // Pour l'écran TFT uint32_t display_mode = 0; // Mode d'affichage (0=angles, 1=jauges, 2=horizon) uint32_t mode_change_time = 0; @@ -82,7 +81,6 @@ int main(void) { uint32_t last_time = HAL_GetTick(); - uint32_t init_start_time = last_time; uint32_t display_update_counter = 0; while (1) { @@ -106,9 +104,9 @@ int main(void) { mz_filtered = MOTO_MAG_FILTER_ALPHA * mz + (1.0f - MOTO_MAG_FILTER_ALPHA) * mz_filtered; // Préparation des données pour Fusion - FusionVector gyroscope = {gx, gy, gz}; - FusionVector accelerometer = {ax, ay, az}; - FusionVector magnetometer = {mx_filtered, my_filtered, mz_filtered}; + FusionVector gyroscope = {{gx, gy, gz}}; + FusionVector accelerometer = {{ax, ay, az}}; + FusionVector magnetometer = {{mx_filtered, my_filtered, mz_filtered}}; // Mise à jour AHRS FusionAhrsUpdate(&ahrs, gyroscope, accelerometer, magnetometer, dt); diff --git a/Debug/Core/Src/gc9a01.cyclo b/Debug/Core/Src/gc9a01.cyclo index e69de29..ff8f11d 100644 --- a/Debug/Core/Src/gc9a01.cyclo +++ b/Debug/Core/Src/gc9a01.cyclo @@ -0,0 +1,28 @@ +../Core/Src/gc9a01.c:19:20:GC9A01_Select 1 +../Core/Src/gc9a01.c:22:20:GC9A01_Unselect 1 +../Core/Src/gc9a01.c:25:20:GC9A01_DC_Command 1 +../Core/Src/gc9a01.c:28:20:GC9A01_DC_Data 1 +../Core/Src/gc9a01.c:32:13:GC9A01_WriteCommand 1 +../Core/Src/gc9a01.c:39:13:GC9A01_WriteData 1 +../Core/Src/gc9a01.c:46:13:GC9A01_WriteDataBuffer 2 +../Core/Src/gc9a01.c:54:13:GC9A01_SetAddressWindow 1 +../Core/Src/gc9a01.c:66:6:GC9A01_Init 1 +../Core/Src/gc9a01.c:99:6:GC9A01_Reset 1 +../Core/Src/gc9a01.c:106:6:GC9A01_DisplayOn 1 +../Core/Src/gc9a01.c:107:6:GC9A01_DisplayOff 1 +../Core/Src/gc9a01.c:109:6:GC9A01_SetRotation 5 +../Core/Src/gc9a01.c:120:6:GC9A01_FillRect 7 +../Core/Src/gc9a01.c:146:6:GC9A01_FillScreen 1 +../Core/Src/gc9a01.c:151:6:GC9A01_FillCircleScreen 8 +../Core/Src/gc9a01.c:193:6:GC9A01_SetPixel 3 +../Core/Src/gc9a01.c:203:6:GC9A01_DrawLine 7 +../Core/Src/gc9a01.c:218:6:GC9A01_DrawRect 1 +../Core/Src/gc9a01.c:225:6:GC9A01_DrawCircle 3 +../Core/Src/gc9a01.c:255:6:GC9A01_FillCircle 4 +../Core/Src/gc9a01.c:265:6:GC9A01_DrawChar 9 +../Core/Src/gc9a01.c:281:6:GC9A01_DrawString 2 +../Core/Src/gc9a01.c:289:10:GC9A01_RGB565 1 +../Core/Src/gc9a01.c:293:6:GC9A01_IsInCircle 1 +../Core/Src/gc9a01.c:300:6:GC9A01_DrawGauge 4 +../Core/Src/gc9a01.c:320:6:GC9A01_DrawAngleIndicator 1 +../Core/Src/gc9a01.c:340:6:GC9A01_DrawStateIndicator 2 diff --git a/Debug/Core/Src/gc9a01.o b/Debug/Core/Src/gc9a01.o new file mode 100644 index 0000000000000000000000000000000000000000..63ac3c4c553e77eddd053fb8d4557580e7417c14 GIT binary patch literal 1180896 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%0AZ$L7Dw~RJzfjq@O;DUInMsUHr0m`6; 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�?MRb!)@g2Xz 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�WN+^~f9N0o+@Kw#Dw*7$>~Gi3dYDX2Fboy06P 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ⅇT{O-Kmub|s#1d^2_(En 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%0Au11hY7^fXvd8cA`@St9IU_>@p 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%0AI zxxRD&Tzq8c791w&W&K+!05ffaGEJFZbz3fk-K+xH{5hiPPEMDBnhILpbPB;-u^Km; zICpB`)$`tsUi$m&)9g$8PU6Li7!^-E%i%t$*qUkXk|U*42|L3^q~8-L2DY~zE43?%=t;^$q0I;?C=Ei zf~O5F0j^gOUvyb;1&X2vB>l^R0!P%vOZ!3@`-nDu8@MtvTDEDxDo}S0p%cte(GYaI zRl)DO+rMtF-u~PD&F%FLFFeJ%-d^8b-Tr)i_dt)%RIAvvdxc6UX@r0+B+f_OmS}1W z4Xpyqb}ySW?}0AbF(xy>5PH%s&!7r>xSqBakkSZhxK{jtBP@rhyVh?B$7QggWt0ex zE0Q%CBZ7G?E6*)c46!r6vr#{#(WfY{UFvQvo*yP!nhK-Lb5=ovfd+po`MC|v0}XZl z3u7Hq(^q+O0;d@B@_=X9OU8?rE<5XU9S`@?L18PPK^v?WJm^%?B$$SwZ!-)WzJOr= zk?va$v-x7mtvN{7*(fn~UPP`9*F!}iArXu(fYe&9XHBSX$-)I@e_Bmo1C)nt8cQFx zH_{wfAoJpas`W4q^36rOno=iFQZXK?0o8jgYNyckl19D*cC@12`k9rFIL&MsCnRJ>*Zpp^3m)rVMS#LWf| zS?;>PuIH5tZ_~zPDBVH&q)b|05rt$X$H*gufKVAg=>y}$$&uW7Gkvw@mUl}nQl7f* zG%R-NA`MGr;SM1Rn5NY8jE|I(Z3ZKc?<-dmJR>Z)|;jZvgab>agP?yS1(d6?p zP~Swy6AK{5%5Okt7{38XkHtB)xNgjcP}p$-Gf+U)^8bA}n@#|KUR~!4ZyyY#tCv)_o{mQTb|x4Kq(^OkCAtb!Shb zh!b>%U}tHKa^i?A6xco}Z{>c-sjUy;fj2!3u~n~bs)sEIe20#J1G<*OL7HC}vtLf$ zY$un)o)~U6%$v=NjM;$%PH=-Ik7`>IY6Ee{2K ztsf1aFzgk}c-mgNCg=%c7uJZIgc0vT5_Ne2b3%8SN9Mi@>_s){$fU|ZnISOJVCp+p z<0YP{bUdutem8Gn+aP{@c6>G&t4<3E!HNVPWuupq@enpNkPOw2P$C#6VoohoQF!#uIQE{q;~%-xkO*wE=4vJ9 za`^f_=3H*zJO@s`n=GEDAi>mKC;1f*@~ghFv7tY&AnIG#$EG+swl8zOJG0dlahXaM zHvI7O=k@gmOK#27VS|H1n6{8cY&bt=`8_y|QKxSZ%V|uiHl5DT*C!$uzvi}1D6xU6 z6o_71y#nA1<7!^uTj1^I!w{ule^3dzz3P@|=xLf16Oab3rj;-(n}gXKM1&6aYa+CJ zV4Im%v<;9qrU>c)QYJg57Js$ageaccdh7B6;$aRhux5@cpbxk?hn|#5_yTKp!k-M6 z7)_DhHz`Avixm1dmc_E)Qh5|*u`~~Mo(Ast9xaWS`++fxNXN3cXvF|Fq1rIyBPa}y z_RLaLa84CSor4?0;*bT~^H{^glQphuOgO)^bI#X1srWaYQ~!-q>TvoxrnA@qg{@HK zV$x%ZTaVr>hwC*CBw4!?mK+&Rju2aNVblwLj7)aK7fFSXt4d=~9(9cT@p8GzO@Dsl z4tTE2Uq&Y4^6m$^69>&-CR}k$L&R|(RE=fL7SYsPnR)}>f{YWHE#T(Ux}tvC2c}~l zR2pZT4xX}t2xXO1Z1RdW?b?YnywKuyeZNW3=)#!sJmg~GF7`?_U?q{ImbelkMEFrP zL&UTL1Ed|LH}oxzv|G%{z_bOO&A1#>JybJ<1s7sqyU7jh)M0XNnCzQ-fyVdZn&uAM zMEX-YSHSIc^=3!^YIFE6EOd0ymF?wp=6mzu9+RiN(7?t)+%7JljXOURQ=*(XegRC$ z5-EMb1(*v|Q2gz-Dmw55MJ=!2eb>ACaP#x0>vuayw8dA95&ZfXL(>VjeGo#qo7huR zGh?b5`JceI3T$M=^_sGy1FXrn>*E{c-dWv$T7Le^_3ilcUp~ouLeQL>r-VOQohh&# z%yrX~v4rR)Vxf~mkCEpxHV_-O2@N_1C)ovKl7}4XBrBvlW+NNxW;ywSiD3;?bh5xsd_EbBprre;}`n7xZ@MGL82_?LAx_A3eu^RI;Gy z@mX=zHWYEuVM!?gORh`~JW@1nZ%5Bq!jgBSbz&-*WS z_XY>3hV|_5z`f4sc&dyJT2PtTYd#36IqFl;0_$yBL=#|x4T+W}iqrwgwlU{h(+!l? z8;jTR0}R{o14mmBy^Saxt1v!~vANPJUr*i0lsFHvJcnfH3?H|yqx*)MEgtF8%>$kE ze14S9S?~(It%Xo~NuP9yt?N=F*n&2rgYBx`D+IZ|gbDz1&*cp1sajVw@kJgiOBUze5yf>q&k&Dq z({8yl0d+&{1@Z^f%4U{fFJICSh$|x>c}OQjPT`R0c|vuve4{l$dLbWEh5R_;_FG!u z{8{elmJCVa*W~`;>R<4mI2LEHoTSZP<6Ki5f_Jc0f1->%@%tQ86Qa_hcjRLsnrlYtWd$hq#3GcGNYc& zKy)x=)#akn_Sx6AdnBj`eA9m^kjJ#r>%*RqcC<95$-&QbBlbn6aL(tu^tZRd@DcDM zr?RkL2pPbFQCEhCWf`$Pzb}F?9`EO_Vfc_>idP^QOOmz`Vjj*gH??Mu5Orz7MQ1Dj z0fZ+86>}u#XD6pPM;9%K>xYP1l%E8D;WRMj{QC4lXJ=Lj=rH=vllK6AYG(8P1D6Ml zMxh>V*?hVqrF0)B&(EqnJCT?lCW)lKq5V9gzX1{Ao;x>CnNggJB=lg*a)F&L5hJ*v zf$WdDj?ucz^pzH3=&t0XMIfB;SFzl;C*TnmmuC;=zjgS7IdB6Wd2kI~xa{hj95QG6 z_a*z{zM=cv)@+mPS{NcJ4@7qoyUHsnU==Am4Q z_)49*h^AD?eD9yPxA4eR9OdtO+grs_;vYEs-y@U%p8(r!U&qzl^~=Fmw$EV1DSN)h z^FQ1`v7BJl@e~ioy!^<83y~D=R~`|&UM2xN@O=d_oL9K>b<$n;0nvUAWWdwT=%{1& zCYzm&C$F)XDIAKbn(%N%{7eDKHbr?+7TxerXxDzZ`t<4g14QM2m64b`=op1bRrmTo z@kE$y{+pke#)w*d)ffl=Gdtw^nVKc_VUp>aYCvxlirbKec ze7=&aK|+@Qk+Zw0`I0YV()k^K(b@gWcYVRxz3{-ffR6HVGZ}Q7bS6j-;gP>X4}DFS zsfRIiI2>|ttfCFv3JD7&t&r?a#wBNdF<-#|8^Z(jxGHbMwmX?K%+PLg`kgXzWUy}2 z2y$Apqbjdc2dG=fb1`ek8PdW&afUT}MFm7%$-jWT+S^U+6@KdLllq$&v4ZQ>ENjG5 zlX{w}hYpUHo}II3L8WpY*QOUQL%U+iY+(A360Ff_jh>^_1R3^j8PNho$;ttDg{02C z_C-X24}=7neE)@wyp_RFP%V=gqF)WZ7};ssu)GptlSe(aJ#ss{4wV7}0>x^%t*uq; z)G$40gX|8=w;xP=ptsF%-w{lzX{xaB^ipIu{3@Y(5bd?{G+19Pw`T)aKEeBRgK#!x zK%fMMh0?`*Dh3`tbVIK&Ff=)yi5$z)4guCHGREW3I-DP5tf197>Bp&NwGtjkY!{%AN}YeCmLqt_*l1BEtP_?bz0FQBk_dEA^IL; ziu)59B$&-G3TmDew6IV^)&Rr!V>!qmdzlduT^)MDi3x=M$rXGtY2Y=zxxDtN`bLP} z^s>f*Qy8ZznY_XQK{Z0#xG979fQ(uIMWc7N9LNURQ@rv}vfMvxSNjHpotk^~18%1rAIV z<%b04r3P!dNbu{ZJSj#XN0+5M>K?k$Hmj90K>|m(yNCF01fUDoZJ9NISZLl;hQGf) z42}={B5Tke2bXU90&f80HQX=};sb&21QGe$!NHy=pvWj@XE-@C4V)}Ay4IrDEGXyC z{i(qVu;xfggC(p?mYxl5X2{`MLDfg`&HoIgRPr3!gMa^bjiK(MCl(~cUCfQTC0k%)HmlL$x2#9v>^87z2zxznJstA&A;An_0=i9_1KZQ)mwivZfCSWN zvle)ef9g>%++$D+@CB*x+;*^^)o$>-LY67IV(6D+WH-@P(@$@u4v`;D)00#xd=2Vb_S7$#CW|L!UB_S=Ci~Br1Yo zcuT4$9(H;vtdqzT$kcdvEmkgtF}MdxvuU+d0rG*eNCZq|JFgxNUOlK!2!#4D=XOl9 zZT#LYdKOP;r~vS1TO{3PtCE*Vh2`I=GStj>#i=XXjL!PO>Kua9IXTBkS<%w!9v7)^ zxtN&OwqVw3CFGpR$VNEY>J-fctvkrIU9~57bWUlP!m?Ge#I}fFk3y3K8z%wwwOkWdXk%7AoLP5iqWxN zn>iP(r$CMRyeT1?f-ob)fH9d4sw*uyjU%%qR|`oF!<8JS5pK%q5_IHbvp8*{hp4{C z;%J*hyjY>3{o(fZ-C%o+e;o`}uDB zkvTp1=rgx=g&o|Lm%!$H35zAm=myq)uJ@0C;G2}k?=oSy^JXL z1Pn)XljL-XEPf&Iz z4DiG^CY|UO@Wg2vgx7Qiy=V|1y}&jdgBItIh`F#llKt##fHrpMZ;-gN@Jm87^Pz-) z_HwO2i7|7j5~MM0!M`m46Z335+B%b?Gr9FGa2 zvn~Iaw{8CY@6azXQ6v{WCy-bl;23`~Xd9eIgUG*PC^m@@%L@4CQ_q<43?WShDiAdt zH5DxRL#4!W{Qdc2d@@iej=D`O3K$D{lS0X9M-i**c?%FK9J$Vq5ebsc;L%psnh5GH zA(rA0LE4-(yid*bmy|2h1!DkJmX50Ae3rr8^ZJTSup)l#AhW(t?KmrLG>p3*KcB*D z5X#labix*R?i=l~tsLdn;!0mYsSJv+D5hz7Z|bx+1z59NA4a54XJ0*zaxXn%i$n9{ zo4dE~VFUd0&CZ+m4EKKY=IzH%cR#)Sh~EqXul!E8+c&o#-@m+r@Cr1GyP2ZfZyuC) z!zUHI(Rc-CFvXjdxwAR|rqAjy1g!&HPX~R8NTpZYZnK}%F#m8-XUlqt%>oA%WBu{H zgt#04UlFFoREGkSAnfmd#oRA-BBC0#NUmLkIubX^-ro^#==1BxC9U*ChxId{!}{4_ zO#v%N{&bUltK7Y&H83ahgSG3M;!;S5?`i`HhkKhZMG^vxeYu`ZS8L_xmOrr_Zwq89 z)6~%gIht0T6)g&JAZh((yS_ppa26pGC4f95h7o_4bj+>%YdDu}hdcxB2~{S3$a`Na zmUg^dr5v4o+n!ZEeEC%I!`2R@(gIb90H7F&0d{WQ4x(Z3-qgg?3t^57d!#RAzBETP zep7!3-04L5{yY0Sn2!f^xFCq=fhy%j-pdxPzcvQ+qzcLDH4|i@CYs3C`rGXBJY=5m z&>XcLbSI{~j(t6hVD20aTe_{u6=wBPq$9v&<1-T1QPzi8@;?s)K3OwRbY(X`dBH*NI zVGv2&r(WZ8Dh(tTvrK}cvlvYQI<*`A&B9o|{8T#!$sxcFLz%mNb_MQvLmq{NVvE;6 zr6{+y$kj7w51`X~VbE{TEAhG&QlUz}1E8C6XPoaWN^m-9@bf)=gmy zKij}XrTLl~mb*(L-Y{yQkdSqqHp>Q6zPU*DEXxf9$~YNshC4q$`sLw(%;(@2aV(6& zy?%Oy4an`0uJka56Ej{N0tEOxRCJU$k(!XlYCHI5fI1;u=adJqsz1sN2Cfz%AkhCz zZa=(v`=hp&wOIoo8j8k^W5sG~rYjA_P_j6zzjm01k+oZ+z-_DqXj-?&h%rR?;|3Xz z20E5EARp(@467noSr04#y063p8a9T0{$^8$)-)ZDsJAtW0;7*R!u8{%hh@;nUI^B{ ziGU5qFF)O=RJ9^b*g)+D)p9yk!$3)m9fmj9;j-i0ptu=J4{W)`g-{InT5dJ4@`|xMnH9ewzQ#qY{`qx!VJ_a)V6>B(HS6h){KCG zGTW2+bEZq*vMl6KGSP9ofgx%^Hrkm+G(+~XdR8>D3@jEjRlL?A)X(BKeQM+as?n)7lu23%ee015Q#*Zpz*z#vuNR4F3oec=7#w7>?Hw`@Z|`3I zxWkJ-zy0v~5r4dW{qv)M@ZzE8%JYD7=SfH8NsTzkN0lxTI^3+_3Axq982L+4IuPa0 ziKbgDjQs*1yFoc7W~Rkyunn6LWM?Jof|h&tXHTTe;}$BD0O=F$91wvyjL0~@5=uyw z;Z_N>a|R*)e>wYeu94tp-noL!8WVPSkTgDhg$&Qu=DM z8gP%qg(jQl95Xq?if{@I%~3Z@%QUm*c31gk6dRS)tfz<8gWLil2nRcye7~5(6pW1o zO;y)hs(5UFhX+j3IlH>FgalMaJtvMN;^o}beZA7UFq6(?GHP*z%aTCqELt52xmv2z z0Bso?b4DkZWUIYE2i+)oxdKyzROXw`T`kn!b#igRx~yxIH6gdmTCG<(36W{&LPuxf zQ@698tIw0dS_Gv`(_zb?8%>7=DAhk=Oy3Pj=Gml~(I>$!xNtbED z3hk{?VejvXm+N%YM3NXFjO}|%q^DmR0NGro)L8xrTw2(yqj6idJ`fE=rn@NUPHiRm zgmBLaW$18wHC#h?qd3LEX!- zq)7bU!(w1*YyQJdME6eAxS7GtNv<3pqfx^%su*>|@k-N+7vdxB7i3_|u&^F*fzwFO zFIFN8;Z9@(;Qq;wNK=h`px9A+oEFz<(3F6)%m8}27)38rQy6BLlH_c53H2Atg&}4F zs^Ck+*pWd6CHA~Uv*BWhlIO-Mc?zKlq~Qp`O#zrh%TlWmpxiku zbS6yA(xu)_dJRi+k%hgBCfz>y;jV=ZA%)f$5lc^<29MzKGU{PB>CX?~`k-!gvLrOi zDnd$$`HHFWujRS~MB@?V^u)f8jSY<}eJZih+}U6m2Yy{_54i9MN|H9K3)WNFEN;Sm zAWCFuVR>3yHz=CJmy|1%V7a>ytip4m*w;`CPrB6sdOGNFhI8jDR6L$cXnS>>D_S%e zMknpPy?Epvm2y?6T#TKnn!m9TRol)Nt34$DKY-9*Gr}!Y`>><5%*O^@x~=-5+p+}j0NgTB^fI6C@jA0$osYM+DQ*M~EF`qjsbzTO2+ zMPK`z#%dUmelt>s|K0-sR})U51BW z@3Z%JjOOs~7!IcS>o3DJf4vi?`RkpAr(d7uuXou;7xQGJJp(1a!+S(U5>=!^Zb#Eo z=IOyt^cKmR(c_6V9A-xF@^wM(OyNKBgV1dQBQg6`P%bDI9jwEnj~McpBw)gG+?&xT=w|{uJcXTj1Iy$`h*S(_|Q(0EQ8_i1^pg$e+_E@&B z+OLlzYC$!}5A_!~ek_<9-wJZWmbVxr5FRw zbvVZWZ-(((MiE?qaT|U%)T7{*%zcOn5FaZZKsEg=kcBBXaWsQ}JRFcgDz3G*9UE9H zQ}%SwH0oqFOhu$vb)^S$HXFmJ2H3QzZ<)XU9(yF`r7YH9vnzFv=PIyh{N)6m;}m+T zR`R^^0-}_$7jDq}0oM(4j;>lYDnjHd)D&E|cp%T~abG7#we@U82h15wM%%&T2d`h= zy%e*!gewtKT)JtPx^FIzmJf&kH7lL~9HVa#g<*KD7qR@MUZMd>FPW1QrR5A^iYrxu zeW0h@vYW*PN`WBZ0chF+wtreL1|#LLv-HHsqB9#`op1O}+RkJcE#MykbEAEivy(%U zR}>CeI$dghg)>RK*5@jVVm~=LDD(G|qETT8V!Av{ne4S8iFYzBAYMCac+aI!TrChEL!zNWmGTw^Ox&Tl&a65Hb{z5Gbkh0q{G6}f>fWQwCiFkJ zd-nx&O|W(T&+a`quzT%HHuX_HmhFtTlbP;2u)pCehf*1FI&C9Fika~_%1m=2m`6B% zDAQxUz-;IyYza&BueBouGP#oUPi%?1{NSauMqq%7h6mA4q1RHJuD+Vt1D?^y05!e z`G_mgzwl>(?T;}P*j#lByhA}d@Gbj|qO)KSdZ6}RcTOuE!#EyJ_H2RT3T}eqS!+sj zpf%1%{9B}_47Q@Dho&KyHn>`!Cf)&{!5*qH+7S-U4tmLYT`Q2Dlx>mEbDo!^vTC8a zrQ`*Wk=H00x%P~iv6q0gPH$mWHw`Rkkp+%;ID2xOl%m*fq@AJR+e*Y}KpK?Te2-om z`5cdkU}7(z*EJ8b?f4kkSGSupSV+zm=O>}E|L&3YV&RWFUQz)a^J!agFi*^J&A-GXmI)xGlr`bZpK_;ay-eQ^yydC+0S2*cAD=*DP1=pb2 zdi$`%k8l37Lf-yaX45rf$raL9R*0Q6xKQ~gXE!Ta}kOw zxLHGmag7{)hLb&ADmwE)TnfCW{q&ksD7z~ry6*eFm z4^CZVC`D@N)yWe27G%U&!AZ-{DX3slB|xz54co5B==kb528^GPq0eKdZDBOcIK(X` z2_)%E0%Ua%_4>;CA>}q{DkErEg&04f1=2~%V>cAGV0~hy^)k$X7%h-Tf>!G3rf{Lc zyd#TXc*Q4LZ$9(xh5_3c)2_K%K%v%P!%|STDF%xC_*%>C-^Gyc?8zY&nt8pL10J0> zTiK!u*Ef{}pi;?k>4D`6jFG-4E`%7mEt&LV_8emypxz_ovU;V6Z$}fdWzbotAc*kq zXq{|Q0Gh3RUI465VpJ;kjlR?xF>gh{g1qV6>s__F!3>i=bC~qLTs@mCE&WQm(s$<( zki61Ep^mg{&wF==awI67qrk`l1-PyVqRebQlv<#6!-CHTZ2!pEeClMEq!KEnvOWHO zQ`=wj=u9{WR?ZK!{<$F!l905rT&JWxMj1c{aQc=^9v2U8&mcjoDLJ_mZ=6#Bbh{Wj z+I2lalWvP1DrxiotnKUH;%#W^~`t*YR$m3OE}RkaV{}KqB4@&B^*0ZWD1Qqr-&|p ztkDGr7DWZ3Ko3-?L6G2(@SGCZ@(uk8Wb&&k!yG@jBda_nB z(leBYu+3aJKro*o-gN5UmE0eq-48m`S{PSbm=6rO6HpT;E)J@+>2$fgJ`wo?lKQ2F zrUL?PbO}NZu6j`#pdP7jk%E4NDzUmcnIl!%CiL?CI{M-9=SsK>TaF2LZpsOz&vLUY z8Q5Z-P2bbNO@o&`_jfCPM*L$5)MpUixL+fJQ74t}*A}K5G`+@S;KQpcO(eN8^Piu< zv$+~U1JdKTV>rDgT#F!%u{Dxb5c*7>Di|dwsg$AnA@9JeswdR@u;Y$y)jA&VEhuFN zaT&Gjuwi1#gYs{V5UD%d?J??my4TrJI?6uX8N#P4`^3KE^qiqW zb|s5c0IefsttE^R)9sL>%j+ktuF(zR8M373%mBO+($Hz?K#1BG4P>3@3uiSFe5DL*%5s9+^A6XD7jDQ$ZKjKoOkPl%cmhN(@L1i<=Gjn*M zF&|{>RaC=@W#cy$m5^KnXJBm3OM* z^&l9#>AZ~M%dPsvYOfra&>dUH6M#gRIVHHsISLXWBV>a|Ng}HHXh3#`xg;kXb3MBj z%QL2T^6xc3J&7k@QTEqoBI|h?xX(SrGz3abm+SdC7`g3W^zCT0yT5<9yZ>Z#u)8MMtlDJe$X1G0u!v!Lsb%@ar#{WpOZK@;59};ti<7wHXr7h;rXj8#i)G(ha4WUo7 zT?34wcn&8oCJSsq8gd<47 z8>DQnNnQ)p5LD6z5w8eh+FYb~T*><;3(ruH0uJfEs!mososdQ$6VMoiBp0VlWiZ{^ zZzD-;;NGWwBb$jEj3IJyIilA7q_o(oUz2h&r0)q z(mpQX(F^rsJvS{>PXq@}ZU-cVcFr)Je8F;q-o3UMwD%fd(7xAayFvTmJ?%pzT7H0> zG$~Y#v5@ki+5P!V^B;@n=Htq@Pal>G1XV|Z$j^fzO07T(8xI$3BM#jnA5+pRG2d!SLJt;r?j2cW^k`d%U;% z$$lTg(ckH($ zXvr}nF7=VNASj@Vkfu(VFE4&K|8?|NLUtI2csh?EvQs&wpY?l6oWW1EdcVWg5?*OF%4VeT40| zM-P-e%pO<<1=MGgchG~0ph^H^VP?t?NNcA=cT+@rf)~?~fCYgBaIrT^9En{PlTq4d zeG1AZTV!V5US2Wp-FSuAIq73biJg5?>g@`iF*y_uuf-;sC2rc6 z>j90LMxlkJ9IX_ww)1W4hXf6G9Gb!`Q>g7jbFwcy>OrwuKZ(r?D6H@a`kTs?rmG(J z2!lDD^mC%P|K2;yZf{1H5dtikdU}7mg38Pm8tcscy`7so+mYv2HBAxtal_-9D%!!> zbV-O0D3gFr83BO&b5P+MGL`aQHa{PKe)DE|_whb~9w{u{ z;|K|h-P^@!LZiUMU>bMr(Z)DO*-O4uC?cxlD zf|uv>?m;(SlPPBG3}l1rzvXEWK8%%X5z7B`KdbD2>tmLFuL%k;t2 z{B53^A+J0&IzY{l^NcGLu4iuZ@JOJ!%SH%SKZKT{vN8h*B-e6q6uIXctt{nLLE!Y0 zR!sqEv!vaSwH;w;Xc1Zl(FCF&U#-87Rdu9jp&F>4O87b!SA%0h+n@)V2AYpu!G+nh z+uUlpR1bY{);gq2mhKPJ0qf;Fe8lxC7t{EhXhd-hvWvwm7)wldj0})p2v+gc-=bXaob1FD6~*s50Ba zXfT~1an|%?01j#b+X-mHdJ8k8sMPuj>qU@?%GKQLm@Xe?RnK4y8-82w0AR2A# z3d^K&6-+$cIs6zRTbAELh4ueeHV)~+zh>EBCvyOba@BiH`D$DX??}bLLj*6eUQNU` z)=jA=)-qYbpbkf@xv_rEXeO8~J|11(AZG`s-@P|rez#1_cDKI${PEQd%w&7YW26Wk zPtJ!nQ-3X3juwtp;O*ecqy6F8eMi>8vnYGuaa`$B`b=3P?2yFy!rPvVpUgP)RJyp@ zOi^*ukdwF>WnWJ>h*Lp{QhYG-c3T6Wy>9TTvA+V){N1~ z$X*!sO#J!Hao!&L_nP&3dxu;RF3nsh1&FwU3y6+k$CX`cmaYnEBqrh=N17G1-Ro%b6#@S5CS5(56`;33IvSutu-tsB&5s5 zdj7(BQd@oxKkMZ%5=?mKOzCJ3IBiP1-Y6Er)jv+|b33^oSG%ACEMGBv?9`uMCl(*% z1Nc5g2BSS~O;6#_!1N5+tmtY84<#fgF30N9X*ef(hxBGF%9-W(&@WB9l^6kETc<3| z&FOCP>%(H)+wD)c?_S=$eRng6A3ShjA%qR+`040mHavbh^w1EoGhkW7Pq9YRYNe7* zI124bq9~@2j`#@KVKV;fDpoI^%Rl{S!!i_avL&fWDD{`i^xsv%9`naL@q;! zD)@dE%j|+r`=UtprF*_0jq#J~1Qt3-D4=_Ks%{T0kErM~Q1A7##7-e$cFJrDow32x z+xRw}gOjIV3`}xCN(%7q1 zQQp7y%+kTYg32GJxD61`nU#19&foWZA-{PC4Mt~DR(ho)v6Q?@ux`rRowu{jskVG& zL+f)t4bR0yIo;h+Pm#?gs@~=7xPi}3Pfm)&xeds*$~sP{voc`^6M_p`^oS)02mSxq z-YUB)5riV%6t()a;M|2ggOYC~2Dca1!|<21w!D*}8l&yGa({&yaXOvCxL2ezBt14& z1M~xfDo_HX(&HqMBavYeLdGbrIjFAe#b6xhfudlHr;wI{gQO;8ZaI3P{ur7vBwstF z=#PYN_?iAr!Zc1CiSy(skM}ZN zv0LfV){2@wv#~(~75m>AzzU|Jas{CQT;RpuQ>F0z_H2H7mM!t6jURSJ*&6RX)x*gO zYlXf~r>h0d@=*3`$gN(o0cuEPTdQBGVd^e9dJavb1$ib#q^qnt;B-?J=T%`N@2Q}= zNBCvB9Y;35(7eO;xPYoh|6I>ckb-hMfb)~P4q`^2KVsS_U~tr3s~YtXLkM@eGso@}8?pm4?sLKtf%C~| zR@u7H*r>Nv;7ME5slgeZ0p!b5D;rshn-

4djN7)o!wb>frB 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

$~>ox&m%$}}i!nn3biv5dkN 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 delta 50781 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 diff --git a/Debug/Core/Src/main.cyclo b/Debug/Core/Src/main.cyclo index 823e0f8..bea3ecd 100644 --- a/Debug/Core/Src/main.cyclo +++ b/Debug/Core/Src/main.cyclo @@ -1,12 +1,5 @@ -../Core/Inc/FusionMath.h:136:21:FusionRadiansToDegrees 1 -../Core/Inc/FusionMath.h:148:21:FusionAsin 3 -../Core/Inc/FusionMath.h:466:27:FusionQuaternionToEuler 1 -../Core/Src/main.c:30:5:__io_putchar 1 -../Core/Src/main.c:38:5:main 11 -../Core/Src/main.c:218:6:Update_TFT_Display 26 -../Core/Src/main.c:369:6:SystemClock_Config 4 -../Core/Src/main.c:419:13:MX_I2C1_Init 4 -../Core/Src/main.c:467:13:MX_SPI1_Init 2 -../Core/Src/main.c:507:13:MX_USART2_UART_Init 2 -../Core/Src/main.c:542:13:MX_GPIO_Init 1 -../Core/Src/main.c:610:6:Error_Handler 1 +../Core/Src/main.c:12:5:main 1 +../Core/Src/main.c:35:13:MX_SPI1_Init 2 +../Core/Src/main.c:56:13:MX_GPIO_Init 1 +../Core/Src/main.c:74:6:SystemClock_Config 3 +../Core/Src/main.c:104:6:Error_Handler 1 diff --git a/Debug/Core/Src/main.d b/Debug/Core/Src/main.d index dec9215..3fbfa7c 100644 --- a/Debug/Core/Src/main.d +++ b/Debug/Core/Src/main.d @@ -29,9 +29,7 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_spi_ex.h \ ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h \ - ../Core/Inc/lcd_i2c.h ../Core/Inc/icm20948.h ../Core/Inc/FusionAhrs.h \ - ../Core/Inc/FusionConvention.h ../Core/Inc/FusionMath.h \ - ../Core/Inc/moto_config.h ../Core/Inc/gc9a01.h ../Core/Inc/main.h + ../Core/Inc/gc9a01.h ../Core/Inc/main.h ../Core/Inc/main.h: ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: ../Core/Inc/stm32l4xx_hal_conf.h: @@ -63,11 +61,5 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_spi_ex.h: ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: -../Core/Inc/lcd_i2c.h: -../Core/Inc/icm20948.h: -../Core/Inc/FusionAhrs.h: -../Core/Inc/FusionConvention.h: -../Core/Inc/FusionMath.h: -../Core/Inc/moto_config.h: ../Core/Inc/gc9a01.h: ../Core/Inc/main.h: diff --git a/Debug/Core/Src/main.o b/Debug/Core/Src/main.o index d3e0f8697cf7623cb20203abc2f9b9c268f6803e..ee6c4ebae86dab6a11d5e7797400b56c380ab1a3 100644 GIT binary patch delta 333292 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

|zws|E6vngR)YA}OhRAmNpk3g^7fd2zf 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�Ye%vRJJ#+J9X>NN=%p=TR%-?J)X| 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 OE<*CEpLXhp9{fLFBkcqL delta 387962 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%0A#Yfzg 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

2gr+F{a zR@R$$g?#bh)p}#>zC8X6P=36pZEz`&SGAOWMqXbttcUWxJq$x(y!OM;lFtkM1|kJK z1wCR5d0})T6!D(90$$8pgPJ2&32&SaUMVm82q^rkOL{+)@$N4{Q_h=>e-z59;4Q^} z7G+)IWgUcMJ#UOQKR0>H?t|CJyAX+{g%?AsygNMCd!Sl*yuE1JcrPD*ewYO7U-20H%l?fR`_ymOVtB8t{SV^PE}wAW%( zK)wDKMUrOxLc64y!_64o8`J;B48QrH0)Jk>uhB>SLg7vu<5904z6{(PX z`#&SJy>oLCdgc}8!S1^|_n>F~|Gt8@_kKsf2hkU2=>I@TG0Fw!=ob8NkuCl%641J7 z@u$I%`KXeIo+YCd_`CGw2+Z53qtns<dAF#rIMXv|>@{*q!Z9YYGqc92%x4`-gTY zJH_^=w}KbDo%;yy7Srm>UO`v0AA8I1!1=R3xCmYV+wLFO3uNo) z*&D=mOo2!+djo9~L)ag`1uB%?-w7&=oqr8x&#>=I0U(@Rj+_ZAg8d=Bq05S9FFK9R z7`8STB4^p#tgsNvex5GbIQD^K@H(Eo8sT_W68n!rC_BfFXvNr**;6YalEU8WgU(cT z;dW4I>}Q8D+Vkwe9q3GFOYjd{Seb0s900P|(^f%QHoNEpSigwEP;}<7#hU@R#CEHK zyO-JiWpE;wZSjRj0o&3Gcp-abDLRYTZ~4NBVzzz;Bum&XL$Cz9=_aS|K$Wj4eS|v0cc|{pxd^ceVU>}ciC^)p|gYCOV5gX z>~vR{z0V$}<--H^%!A-{vY#hky4b_?D(q&zp$5E%J@sSodfB2545g3#-xApCXRq== z^N{VAj%I-UfVTOA?AtyV!w`GVMNp5})A8j1)-ZcP2|RnuUbh6)6SlSs_MT#K4GSY| z?=h$zWrw0JhxLrDdJCf+V@p`gb&^xN z4s+(p(Pw~iU^<6vtVK4_31h zIWK$&my$T|W3kRU$IpW-LJ>W7p6*Qlj z9K-u)vN#zO{LJQL--EJ?9H)=a+Gtg_c6jgJ=M%IT`Ok zSr6yA6m<4--aiehk5hUDynfCX`{3?F&Mf@TCDs53cQ7rPbLjyw#JO*U*+-lQ6pk3? zyto4J$DH?*0C>W=a0s1GISY0HFv9uCj4_OIw!VYTXPk3+_%+8kqtgH%=XAM(H^IrI zZPX+uEeu+0nF$+MKf;vIuGWspo&}eVGUETcY?ybFA>zQ)mI82$5q|{>$C++98b>BE z8~`V#?K}K_&P*t+hg}%kT`+Wl>F$G0H)iunbhr+Frrh86`v($ zc`+YU0)Cp&tw-a{+?fqSKFl1-ANVqx*T8}w^9AbgS^iAeC*TDz(4{>(jle}S z(_e!~4CC`9ChIJ7#~C8A%(fb+j$;rD!IO_EqnCdI^YR-INo0~dp*o4_nE@>+OvoIF zq%uW=Fq_7-jzHu*vvwTLr!#Zdz+GTgokEkrtfGZYCiCi#u$RU3{|{6)GmQcX7nx^! zA##~1-Ga_sW+{1{$9zm%vn$MEibLcxNe>}ez#MFWXNAn7R5($@{6fi@Vy0A#ri5AY z4y>0l8|aF>%5Vu@#!R8LYdPcaCPrJqm~UVvt}*`0(RrQuoR5A7Ru&QPj zB|^&$X7gfDHOz_-;A)xuQE2Lzd?PyRnNnKR-DGCC0e6cDq`g1`^KvM7jm(ZdSh&ro z+R?Nyc;(O*Bx)W2t<3&UAkxOnUWG|+XXfEVAa)|BPGju%m{FwUuoGGP6rB&4$%UZ0 zm?QM7bTdLBnjU8KI^ey`@cS5TAM?{`Ou<9uowvXnV6yWtltIQwkC{izoOfY%n2CBH zsvk42Zin?J%*9TO;VE{0GVt*~IvHMBsd1J~~`0LQq>8~~1U(|5oLM=py(woY724RFrf6LcG% z;9B_roa7=Ij;ATtD-fQ!bE5;$>4C3-!X;1c%WhD1id*{^0AAb-O5C32W>ap)hx-eq z8+^I555bThH{k{-f9^}$fD7QRxCFC-+&83v2XS{V10a~&Pj8?Q?uMDL7s|a^f+mc+ zBp>iITu*m2;oQQh07P&%)k8}pw_Suei{dJ}0FUPO(WM{5U49U=6w6J==UrKGT(8gJ zZakOQ2nQ3muSG#5k=sy+CW$-oIYiEJH~NA~=6-?-2JEy7qhTS9dwVZ%=eeuh!OP&z zq7Y6dcQ$R!vbcYqfJioX3O&Ita<@~eEQfoOet^r|ADu9UTy8pT0`j=wUa)Y58#0W} zeC~qz5Gmk(a~@3*_lN!96>~Qq0I!5QKMdAOx!*ZJ^;PaC>oC4DuH7+cDd%nv2jCj_ zmrhu}&P^Htu9DmICpxRR#rV!Owq}ngM|Oj|I~PAd9XE6-T&m}OtO0eCyMP`ux47R1 z1J}T9+J(+WZXyMRo4C&J!B8`|rU%1p;ePxtnmgQm4rp4rJ)gru8&`}oy{x<3A1Qd& z!EM5aJXrU*HxJ!5ieBqD<5fcg0BKMW9}|`y*%OGcmrOKaNk@Eouk|@ zC{^~1dyT?nW89rs_Or&hV_g7DaKARe30vN7x{~o;)dOe8(|Uk9%G$z7w5pyrsXukUMX4 z0017mc*>!B^4|Cfyi>e+3&1`?Z^is5aH zhG%Da&ToQ><^4+ulsH~7Wq9Iw?`xnXfj6rX){}Vmp8|J|_aFzOP3C=_3qT65?JAm7 zo?SPFlEzy_;fQqJN)rGVc+*#cm%;mlBHEd}tQyB=lOpja9$*Z z@h|fv;o#-+&eT9l9&hni_))L$4xE6N0$$Ws46~4Tq#8~X@jjxxMKP}z=K`^P-hlt` zfbH{hS+G#X(|iGua^7wVmsRj?u%YuB&+Zd+UgzD~h8e8nF<#(R^S)dTCvNbTOTeq) z{m_9y*YegJL{rC;oCB_&_YdttZt)gHVSEj|n-Rb@@-Dsuz-`{Fwdic(-J{4@Gw-99 z(AmoSVr>0M*HRN|~B2 zUYQDJyLqlGDC^-l(iWqaw_gORkN4#t5b5W=HweH0Z$O34L0bTuP1rM3t+*HFI@=UQNFzo#$eCSeF+vE_<1RC{uqDG1b&?3{5=$VbL7X+j=_ol z*EoJnXMQ&Re>=;CpE(GfC-}iVfV=X~`$5EwpT8S8cm5Vy&3N$3tI&AzM*=aFQ~V*C-u#NS0Qm3+{NR!=fBtLG8NeSiffvaCbSJC_@!w#93g-XgfhL6S zTn8| zUo5|zwrp|yUH@Vz@%+QRfG6-*QSDD6-(fG@P2yL+21DogKT#efnIG{9B-8lf7a?+< zAEAJka{aogYmL@=E@2F05Daw|oxgtNC@qpl-3$3SnWK|Ai++Cis6-LDM9^jEW#^1#Yw) zIU;yx1!lrd5dAiIM+Hm#0dNp#X%Bl$Fy#`QI4<~rHcgHK-g?+`5-9h9=Pc-?k~kNE zcM;) zwMV{!I7&eK34&7r_ZNJ95Rw4`8LjRE1(vPwEJ*Mbl~)A|cE1kE5Wx@lUt6p&!RM51 zIwLqvZ<27q6FW#o2xc6IXOV*bWzZ5OIHf~pv_MPsX)%ICDvFL3d`-)WI6@WyToB~cJSPogA2P8+PB6D-6@7gn+$h3c461>f8SAWg7gBP^U3)RCcd!TSr* zc|p+L4bL(JpHgX2rXYs)#aRON0+`Ja+;xJMO9E{tc$Wp<6qU~v+z5bYd4hK+BXLEr zIvenOf#Z+h6$oNq!Xy_7mTd#CSiqVNc!_}D3P7o#{by*oDoDW@4_28VgVvwr0x=~R zDg-kR0A48wrq@!HphAl=R11nUpl%4d&j3&(*j)_IY6XX>I;T!>^&rgF3!-m9%S}NI z)w$dfOpnHh8U!D%fW1b+>~!e7Etv5Ecuj(EN{%%Pw&I@vvswhN(XVnxP}mHrRUoFM zZ<`>#8umH_Uy`AF0&x}K_XTxpVBvwlmo^Taf@jCk*)8}x9S-*3mxjGw!GSVZ=o5Up z9U}dLicIhx3f65v=YXIv0?m-%d?F+t3CiDs^TPsfe>neGP*RB>?up>XH2fSRf=y-^ z8Wl{?rSVL#^Cj@c1iw`QFfN$<3uY$-E)Ow=NkJw>scePuS0G|1?ED*JI4ax`1Pk`U zS16_6Ae^!lykkPi5*Ruz+)xa-qcH9QI-P`3^k{Yw-lk;#3E>aV06!^wk!n3$g>RBF zH(~gBIN>gQ#Rr`p!f$Ci?kSu`#Wr3-D=kM(3)#oecnh}$V$eRq#{+15h1WyiuAeZI z*24b6&wl|RKv=yV)`Nv!%}^F1{9_9wLxl}nFv(%UXOvPnBm9_L3Ks^`l@%e}@(BQu zLMLxfQNqI&;6)2Bb1|?O;n-Q|JSz;}jV4y8Sq5I5@FjXv#tR4ea4Avf_cEv?;n!Co za!%Ms^`FT?n|tU?5pJ6Sv#G*u6eUg*X7)nlyl^^&tS<;Ti_n=Nth|9SWC{Z)zI#!) zoYs*!!W}z6T@o(B*?rb!p_TTVxxzCKK;;P!-GK~)QX>xQx$!ci)#sujL_3cl0{zoWE4y)gJSbT$Y-KLRa{Lj5$TzAb!{ zmLpBV)fC@t7H*!6326}usk-Biu(2Ift1y#7P;J89AHqVru$EF~cZKskV75cpBEk=M zPq+~$3Rw4r0^0aJ5WdR5UYF27m6+Yab^eg-5k~AoXRk1FDLVUvhk_v4FHAWM>Y?!C z1{fL;zJD468xn3k1VfL6y%V5@g&vg3eJXrH_< z9vAx1RX!n%Y=pa$!cJP1*oyWa2X#a=NKs-tQHB)092K4V4UN6%ZQ2evh}O~;@t8rf2Lt5L82-S zv;>P*(K04P6#pGmhl*_f0xnFnb|C;~M2&}FHe8f?4r7QAF?FyPDT?_BE=7s{c>yBP zqLq|Yh!G7f20TvGOxyT)(fdC@OMb<)Qf(jny{OqS9hYhC9))8${R!vKY?VU=oL!y-WL7* z2H;JidI3b5MVF4jY>Vi5is9Z71$G0_Dhhi84z`IFcVb}eqDohc=&opR8w_=brhWtJ zo@nG-;O>iN2%)n}l=mtC-J;-0boPjnCqVUzX0C#TK2gk6*y|U4M{BT$BHlRs91vCA zg5;nmo-U#xQ4#*T9P5#&n=bZY(Q{s~@K_WMeCM9*@)=1Gr*0CYNX&j z6Mb(1H74r)5Y)KnK?}w(A$q1lGb!4$5>D8OFVbWCs5pw&*Y@JP)6n7|{+V*I$Hes% zBRei$djp-0;>B_};Uw<)9h9>;n`%{E#QQ2>{e*ZHt!Yn+Gu$v*SMj=6F(Nnddiqh_ z#YJ;5FCJo@0XjX!PwDA)O6)?fK`*g$9jMddJ+**)i^u3C>?4j@0So@(Xu3NB#9KMg z5-8q8#~Fge*~=gqEbeTFyCLHLQFJR*{JAeA!^HPrhU6LXTYrKI7cZyvS%f%jCv--N zm%ad8l-M^ORJ8aBr7vQ{K|f)9XT^f|FiWxGe<_9(Cq8fo!;BZ7=E1WBu@?heqBzA7 zE+vVj6gf!|kITVJ6_-*9Elpf|7DG8N{&*UENf(PLseM75M>((z@lV^}OQzU_e@V#7 z5?`T;`)u(sTCC@Y7t>jh$6 z9z+VoOQ@=@NSxse3s=PpXdO}}&h~_|a`D^t=&TSw^F-%0@g7>iSBlG1!K)H~OCkJf z@pTu#Z-`%_a~d_`#r7COt$57<{HzndLr>wG;$&JV-4b(d!)$|iQ4gGG6hEYb%iH2^ z6s545#9z`?-Yh;%>(3T(=_gQjN1V44_BzE1s=4VB-`fRVw^;lp06pTLX(8V$e)0jR zKJmOe;Ps20sqFTl_#+LP0r3$DtPhIYq)s|4_Ym;M;`_0no`@G+ z1MjJLjS$U<_|NNbcT}853*=|w1rn$p6Yrp0*0}g1dQD7-uTVwdq?lnaOj}7Ny^D`X z$|-SVC+Xgb=BT9H9%DErX>G>T9hW58L&Qy)c;+nO2++7ley7st6Oy-& z!|Rh0TR*tuDzT$=ftzH6wzBS$Q-h#9Bps9y^OW$Za{QE}dlCRI$;*1cPfPyWjmBG2 z^C|rFk$g}2IA4i}8X|s@07^>uOa7SwmjWc&=@@39B$yU1L6Vl`uoo;zO9K@mY1jfl zsN@kPvBD)M>6k`@WaJX4NJ-jB;G!g-&w)s^WDV^NV zmo%thHeKRRJN65b2UOCMAvsA0fifk3ZN(I1NxBxI$(F=X-uI$p1ubfFB!_py&r6aO zlz6`^aiVZ-uEgp9$vnyGMohsKNk8o^@+Ho;FjOGPD+0VwGDHFIBFS$QDl3+>QGHX1 z#P%#kTPpD@0(Dh#TL+iQB#}kHl}lz(%%ehb>^pQ`lRTdf_;rbT0hCor>T!~eRV7(T zb>!8O`3E3UBk`qFZLMUGwz+kZ7wImpmu$lSfM?y5q|(OkmLz@GxGVXc!tEWBVF^0#Nks3V zxi8uHHVi$G{7&{dB{P=;-X-aM9)`Ll2Weh$nT8AZTsG#(*BqJHPCz7eL(D_s{LLvMS$#O~=j7s)zg7tC9Ldug& zNG5;B7$zmV(_q$CdZQM&Bht@1pv6wQYd5H)(p-8o+e?E+fpd^bI?#Dc`ilfk9GCw2 zA1FuZKH8PLNQWqNbwcW;1mL7Jfu7K=(nUKk1#Z%qR#qP`Z=K z6N98ID%}s3*3fMcB7Lz4BB9cGB8Y@Zlg5ENBkiTdP`ETJ8P+4DQ|UP$DV_fh%tlFH zJOB&P(jydzjFEwKX zfS-kRQTkR0;5kwz5{52GqZUBqvh+bcEaXXZajuMYMLI&2)%nuD=&4vBy+CKP3Z=_w zn^Yt%6T^uT>A@^erP51xA#zn3OzHG8>0~x=<fj)4lO8P0)GgM1W zeK2%G>V6I)HPX?g7(=aeDplCjNq05?UN0@D2*FM1Mk)ciCCwv08>Fc$h%`#S-wgO| z>70K7Z<21g4%N-lz%`I;kxr%O{2l2MdPTNMTYrb@Hfg{^@Y7P^t*dhHd z629D%K7AXV_oW}9f{OJ(daV6f<9M)RSxm&(Eiq!(x* zKPavH6jL`O-9}l`N7BEDH!S^vUfz$T?@)&7i8KiR^M>_QdV%)EBhnlb0He|!`ylyD zs-O(>`hADYan7PJANI*JR*CW56Vt%Isy%zhmqUvUu7i9h1$l zfOlM0+ypJovi`ZCTx2iPe&vKLFcH*ASq&9qy2{?4hsI6TMEN*(SyCt99x`Xz!+Oe6 zkAgZSdzqpKUa~3lXg)2IF!0k?_AZqi`^oy~z2YzH;(!+*n@P*9K-tj}bOy;z(gHGA zHdTfZg~+!24PQcK`8NR%lYL9`c}7-m02MB~wjaDG*^^_CjFz!~!iZvIuJ1tPtnA+~ zh{Vc@mq8>>7P0|m<7LBCdXga9p@xM-*?r0fB+0g~fyg{K_V^U;pRBN0n zoA89{G@0`>z%R%Ge*~2w`}hAg;Ic*ZF3ysb?897V%RZnb&PAD9B+TZ>?!N-nmtMS`G`fvQ{mc zI@t&Pz}3sVK846lSt{)&ZpntJK(|4*oCPh7vY2rgYL*%4zHO0-=v?a^+3o$HT4i<# z;I+vVlpbxDxz4~a@5;8*1F%DOksb;6WS)OunD=FMR!|RQ(jCy*DdPmfvo4uaA*^@H za^J!jdSplU!=--NzqAN`DAR^RWI*;KZ50M(w`jFCBzr*H@kcW26zCk54bYq9u`J;f zs3$T_8YD+$O1ey+$tsfo7?U;a18-b*i{8Z(vIVqbpOmfm3R-OClm7$Yh`h!YB6jj@ zTCp6Jk4y#6UjD}0;5o=E=nim{`%?9-ll)D}UOCHeT!Pmw@;B!Ka6%qSN4rkSJK~_l zRsQczbh^n`$pLVen@&NQhkWBLSof3{(t_udTquL2xBLoi9DL+9TVTjn?nv=uKRL$) zp1=HiO2Guk%jl&aD8EjV93;=CyCYb>F&;WY1QJ zkh1Yn@@6}TM9Xi|iRl>mNqRS)mCvdM6)Tq?%Y(pux3d<(^> zljU8Dpe05A2QC9vs(fZII@9D`^Ff`Le?ba?`;Dlf=aP~as)9zv0*O!=+#@Fh#` zNbm3*`B$@{<&yl{t7tCECA6=~m2aL4dwKGP8Z=krcFQ1{FQ4v&ra&I|7CbAIAKU?Z zMe^}VToc9eZ&stTME;nncFW{rUjkPyFZ%+#3b}-W#n4gGh~hzY;T8D<7i@jXL?Ebr{1fIY$hg4RTLP88pflQf&0L+8*umJ5wsM$FE2Td(LRuu zQTEN}4oeKX zM2;vP`~kR~B6B}{IjU%n1^k%eg*43kamBqj@EjGx57FtQ_>Go0&I%k(5sItvpduAVo1imF@x~;YXvJsrHjGi+p-BE& z#lyRhj8*9710JXNkWLxKD?W>YWP)NEUCD_G3+3^W6#q~>-f|sF4)1%2$%!>gpOHrVK*=&U~Rh3^If_N0PCn=B#btcdgY`i1O$7{fDrV8MwM+5aSCH&h_?Lp}QE+cy484kU?@$WrQV+uE_j~rM0IS0*z;)Om8Y*Nwm9DK1=Iu8PVL|ODa;C4!9 ziX|LXI@32JN6+xfd=SQ?57x$>Yi$4X$DWiXeh?nxqdFVW?%%e1mxANA1m3z8c!A32e4#o>>7@WXSh+9?RERQq4|Ikq^-TbT zDQ)OUbVm77D{$e;hzN*8D3fT{8maX74XUG*(oBd%D{sX@Bu42-VY{=+bc)o(D({~G z6{oyJFVlEs@5gX3LHUf%JS8e^C_S2_H2sL?oHC70z9lQWrI>;gC687KsmeuJn87q< zNE({+O0FlAr7QpG1Mh;ae!nR-U1V;6>%yGB}Z=JRJeg zE-6!&Lh`aQh7R~$QTEb)EMJ+l7o7#l7bwhBsLc8hydvcw1tN=;UsEA_iLx~q%1V`6 zF2nh&${VzMDN}w<=ef(3&z%IXLb+}g%wALWP+<4E(uYb3DwP>j30tMyOM97WrD`*p z8_I&0;8KmUvj zQQcvavY#rTo0azT(r8icl%w;Gax;~awJPURK|-7I4JSC!u1uhEfxF5-DYem|oWqB^ z_mqFrM*6-ofGY7GC{yTn?^F&_K%+~!XeUIvmFrY+qDQ%w;wZh!7pM%aPx&0h+544g z6nlE8+}s8&1IjETs6pj|txz_kd}RgzkCb22`)F7>^KFPcR(f}U_e44J0h*`E$r12I zl%1ZiFsj@{i?3(O-xq=!Qy%;lvpcRVtpIL9`S34{VN$uk4xP5Dx7I@Bi0aGz&|;^$ zLSG6vs%jwX_NtB^bULV>ry`?cs?62sJgz!Uv+Jlz{0Q^nq&iF$HqNTeLug!7El&VH zp>m{M!AVsD73jFCMyRgKO;!E?l)Fk824x;9-LGgoRegJ*?38MPp7UO+A#ZqgTD6;2 zUEZo_s{Zy-9ii-_uWB2Wboi+Le`$gH@qapB$ok zHy^lA)mtCY9j97N`IQJ&s}W74sx}UWqEsF4z};xoN=g;QsHS;fL}yj;Zs?3vy+-fp zI8`%UQt_%^pTNNc)ve9IC8{pG2SAdFTL25^RGi;|OICdr17A{9H>r*@Rh33HE@`TK zQhi?4od90CY9(Fe7gYPchDe60ya>2VRcj)&WU2lvMrXFlLLYCrsOp{$dpWB0GzFJb zj=LaoS*4-z<*I(Qg_bqFlJ@P74!&IJrO?B!uIB{KNq}O$&>bE-Js#K|z zmaA4xse;ZMs*z1-YE(z)TxhN8H666nsebPQpk7t2gY!34{Li86mMV8KBpXy~zJg?< zDp-#Rxvkp23xFooaeAjVtG-+dUW;nVfAH*%>Kj_Rx2jlwqO(m^jgKg?+EuQPVg0V^ zpDa)vst;(9cuzII1S0oU+I|>%pz@;ssuVI z(WeTfEpWfem;{lBs+)8>4XA#lZP}pe=O%OxsZw`B!vLOK&P=LRP%p@*ORIjuA(4XYMXI%9#g+b@w4OVg%qrERD1k@#z`GakuPWUCJOz#sQaHn*$H(R ztqV@7`{+&Ls_tdM2{&~BWslv}ud3mMhq@^W4tlDCE`mCxF6jc!OYK6TmecBQ=zx^B z`dkt$_^AJ+IxAoG4|I;mPdz|OVt;iwRha~+w@hGm1J$3+gJh7pn$l#!>TmuA6{7ZR z02Qjvqzr19x}Da8XVmOW;KJ3{Uj{Bh9Yi^eNc9E_#vY{>(n*PEbzT7s#i&h{@a(MG zc?goR>fQ+qB~HEPAOP{|{5k*<)OK_jCQ*Hr>h+V<30wfqsT-->BU$ZC$@LVq&mrJa z)fM!xN>lUe0XVPrV4x*kotz1g3+jI;?v|lm{wloAR6nDPN|yRgHFRdH=LEr*i|QHQ z0hgn06M(v;E_egeb6FjF3L?2`@h0H%)O{4+y`r8^*F?TL>>qR%sIO7_zEE9AUKgp? z(Oa!p{YDHdl&A}6l~Ag_M;peg>bvyRC{r(^XlS`wKv|3m^=Fhyxu$NRO0MhbF%#Ua zRL^)HyejoJ9pKe!Un2lF)ck4~s!{*C3&X5cSN{yEPR*$Xpk7_|A)1@&3U}acsZ+{f z2!Z%1z%{Cq-UM}9y_|A&P3of`W3HRkp{K!XQTxy$_>TI(T3ByYM_fQ>o4WlgQ0;1l zju6~c(^vah9qL~xFZw_oO;y~T>Lb%Zb*W{P%;;9{jl`gP)KPSc_NxD)!p}anEA0*Y z)dfwU9;)Y1K43uo?QArI>MbjwWk_wxK=Vlb{wZh~R)^AR?XkM(J2?16y>1j1o~lbI z3_7BIX$xj>RP9CSl4t6}ZO}5NewUI%*ip@L+FRIbVqXByK~r}V6LL%=xdq;F%>WyPtKv7L+O^O_pi{{6v zP<=upaezxFH8w{1jCgpwL{4{nx;Q4D-UV`cXjqy*I4b&v$03M_{@ENFJP1!t5 za)@RbrG`T_|D%HlVH$f1FP_m%`4}SMn*DTdMrf{3_&ZYb&QIu!(!4@T+h|SII#`I& zbWu&lSq*;^;ISITJXnv@BsZXm*UY5)f&@)EeHtQBb08E$Nz!bl$j~`W96hX(HC}Dd znWFjpFq%{i-v-LkG>_%5a9$Ji1b}o+Q5~8K8qo$=$k4D30GFwmmkrffnzm!$WozE0 z497*yTNE(O(byh>6)n4ur5O94b6uA0Muw4d62Bt^lw5_r4Ynq4m7-P0VH59+>V9X(qgXu7|G&Q8rJr82uT`O9FoTXV?;ojsZyx*K~n zzxu<$K20#KL1$pmS97N-*HhG(HqW7}LD<610qKYI=a1&^*e8pOczS6>zp% zzj+wS5$(h0fV0zvy?_Zhs$EZM2z#w+ChR$Am$-pCroH(L7LIG5UyV*j?Q*IybJG4u z1>(+H6YUsWv?+nmazg8ukLIM-p5B|TT6+PUchi1)57ynaYofvP(1zayz*GBrF07x@ zMpFdYOY0y<=V|Th6r=Xmp85`|eY6Mt!1L9zu0WZe)}BV|uQj{{mjbkVPe3G4+d)C6 zAnnjB@Pf6zKfzFlcKHhMLbab20vD$JI1sAOXv^u0c(_)z2~C7{ZWfwIZ9Kh}qO=ud zn6qf@89EdZqs?rFva?z!xW@zS5PJ11#Q`Xa4AFkF8$J(+7%(No~1R*KxJ#^ z8Xah(|Yix z_608t<(9UB-i-~~5PEMmYJW0=x~+YaisPHKYlfk-S?fsg`4;W}@}T;TRzNGxR;?#p z-fh}rR7TjYwTwdNUF|_SebJ%yqk|pyv~3NXwE+8uTf>C|qb645U0W;!X+ ztzDXlrbqiXWpH}6uNMK(r?qu~^?t4Gr_l0HTe23^fOg5}7|NhF&J!~+q%A22?~ztP z536DAvJy0pwYGF-@`={rd+?rW*>s>_MC(gO=ti}_FGcfA>-iR(AJa;=!KHDn_CF|_ z(AM!_VN&bhiz%?xu@+&NM|8WWYTQm&vlpt5>P9I1ZLb^s4>}!mD^`GaOxHIZ&2ioO zFmyWVhJS=vC*85tFyyQYse&OF-RHE0a@FKqLT1X-K!n&GfWpkhlI}Pmb8Nxu3PaX{EW~!QjtTXZW`_T zqjWbv1|V7&PzcpAx>hf!KC5%3^-HYo25rRRbitG&jMu$LrQHcSzemuLsJrtG;7Pha zD6x4?$G2i&$+~s#0hgltgi>Ltx>0&>rs=|pAaY(ed>n?-bs=v-=LKCM6*6S#-rfP# znYt{hj?U7}q)O&&U1126UDSnyp~=zh_z{LK=>q6T>1EyicIeF2t-20FdAjsZL0!>Z zq)lPI?(7dRRG_=#0A+=`Wpo~>NH_EVykgyYKk!O)^OYDwsqWwH80}S^iVoqI>0GFI zr(Cy$w$&9n_i3Q6>DC^>k8@qOhPKs}x({iITBYM>LRqyAr&Vyr=?wpusL~B3LUpZf z`yO=G>CQ12X1&gs4(g_kOBw!KIyuGi8g%Cdp{!BYVS?AUb^S_=uSqwDvg6IVO>aV^ zMfcMaPY8a4`%w1>g?R^bt7$zys2lhL)R0c;3a=mO zX8FOhVcjCCiF&Ndrggy+-B<>APj$Oz!?O{c_um-Gs4g@N)HB_YSP$L{SFHL1?o4^NAH64RrHWaPzd)6~VfsyU|DDkb>52^3Z=pA3 zgx)}5^GLln<=CV2ZSwlshLySI73HVw4DXQU#)pNhYe8%Y)Q2;YupH>a)3Hs+K z?31WZ*8-5Fx09ebr}w8sc(PtiTc{L$S0kuY{ihkA()3$tTYX-?kO~sg^#*z}T+mO} zW9l;WmtTZPrv5H%owM{M3*b_=eu664FX}aPxFJXX$O+aj>1A|s@3MYbAv$yQ%c;yK zPybdaoWG(Ur;TR5{(DLy7wC^ifGX6-(-$?0^tK;Dq*#BBA`2z@55I>b^P5%--HLmLy)WPd&{Y?r|-q6cvmsO+RMD;ec`suf! zvrf;YgCzC(KPk9!Q?LC3xLf)rFYp@lYnK4fsQ;33n78$diXqaZcW(i&S>H<==@$J4 zJ*YeS&W~WBRsU}g?6v84TA-y}FQ%*YuHHcg3my8;hM?u1J|P&A_w{2hLD>VnjB=Qr z`UqcicIo$0AhKKUPbYGE^c@u7>(zfti|0Q58xjEe_0e7Ee5n7BN&*J-DfH+X)X#ba z_J;J8RNeka|0^xJhxLc1VU`~2x9B1AMDI##l&AW=f%w5k^szMMqxyGs(DF<_pSIOw z`lM_OWn8Zq!1PS$_t3U_QvVqjzStVp(r)mGA&zFr&X8FP>ZqZK-kbJ@-32h@U|31l z=P^Tp4|E@26!0@9tv;-Qq(4#WQkoh(Y1sndl3!Nc`2z)`D6>2cK01#$)fj$Uu z#$X`_!wn7Vz>6@{wF3}o5KETNIzj zGaRP$=oQ0Jis9xP4jjk$3Jkke!Fr+LRyn95gNn2i8-)Y2JK9ER%v);BfPFMI7z^(HrP>##SO!jTDVkW z2&T_a)Ebx?GGYrs^8jfe|MZ=>#tDOYiOa!LZ4yP2mt+tmV+4dL&G<; za2YVXL@(Mw!wZkm3>h+Kg7?UfPG5=}Hkkeb;IScwqTo*q7K&IuH8_hwjTjuu03S8X zqZs@%L$wpAF+=r6cs6cGql$?MgFpqBCJkkj5VbYNQ8?v@F^9^E?2P^05IJh>;Q(iE zEK`AUFxI>S=Z_h6R2F^QXpKbUXnc*5N>0WFJUHlVoPHe2T#P<9!8>6L`W&-+()i7L z=yWyy{STD68Iup7)7_XEi)r;RCThU*G`gP!@078Osv^9Ni=RWMkMWl^(CKTOpmeOC z@hw`~`Wtt70Uludfocx|jT`BRZjkX06(oa=y`}Io#CT={0HH=(UyL@)c$q4|&KTz} zhh(@hohq^-jM6knMjA{0g_bDetbO1`8-Jo?evI+p%b0?*M!S!}i#2jf(8L*^QM^3f z_`xDLkzj0C0S6O}U(?~RB%_uhp686!%@9d8PMiXjV*G+qgsH|~Zo`Q*qr+TiId42v zjX|dyzxxB77mOc?0LU<|r^H{Tv3M8EW*NEfqchu>MccWH#?Cv?l4HC$3-C+EJ(T#n zY;6GLUTCx*#b}F+$7m^CY^=7x>k?xV zU1z06S4#h0H4gp)c$sn9BXpJ@P>?w+u-0MW9uKVH*7pU2fU}oLyee;5#z;M=o~eE zMz!_Nj2a4`jv05p2Hv>Qg^GwLj61Kw`lRvBUubMigLG8$h-u>-IALeHOE0jarXUjl z_NEvQP!6Vxw9+|d+V=uPj+-7mhoLx{iozk{WV+`73(lt5dm-Xt+DB!eCrp(r@J^aO z8iHz9Q$G~}xS2Aja@yUr_FIg|!}P;;P@X3L|EoPWwUE1BrlnLLa@uqv0EWCx2ZCVT z$K==x3%;gx%hC9m{Ig)l-&7X@odKpb*#HEZKBN?3kZIvgs17!*y##oO=^}k{FVv(7 zMiXY*OwWlkrWy1m2{$P|!5AV;f+F}CX>zCY;ZddsY*5jrzG^6oF`e87>a1x6trcTU zzg`0%&SaT`Cf>xQCwqeFD@p_;njRm5>LimU5rA{1Gyg-AY??=rnhN1 znP%$v64uX~l6^3SbkmzuqkF-WMvsdOQwh~zWtv{607I6kit?h_rg@GKxoBGcBd8ox zjRQt|$+Un9;4horq=ZE-KEH_Z<(XQ32k(k0>lb*IZ)%_iXMt(MG^j2#{r3<2EHdq* zTu8BL=M(TsOcp2LN=>Jm!Mkc2S78igrax)3TyE;5QnL!vDq5RfGyUcQudkbWhhd@8 zB%zITmFe>n092di+Ca+jJ`Mz~+4L$clv+$~Q!w^BreCE1w3?d#Mbl>bU^cY0o8F~;)m>B92N++6 z$s-56d!|FQ%errRd=$zam}XPvywkLx4I*78_66wdHtnI{SdVF(!kN9MWy8SrnW88- z)^GajDsT@?YiO@MU|LS$=s^>YLTp1O`*H9dnPyTrdf1d624#;;leE`Dn_v0}jf44J`q;xU^DA@*95-*$0pMt!J{8V8nM)~Q;cTwG3(Cd( z^&T`Q%&i;IdD47595`3A;}qC)GdHe9r@PsfmT4a5*g{Bpn)~Va?kTe_7bEgAe|-ql zY4g-<0KCnda#;5<+fosuuldb|7=xc#9*q(Cn^Wk85@60;1d%}VXU(93%#%u}4mQ6q zA5DmPoXQMB&F@fLILsVHUo|^pe%cCNxY?VJCc^w|4S12}>zQbx%;DcbOSJiQ%Dl#y zd#KFdthwSaCM4FJ_dif^W-%SXiZ@4}13bap`X&5KG*{3rIm!IXAS|3SFQT%WWb?hP z5J@p#h=zly=4n(apJx7?BG2c|GYh~=H!B+;dBI$sg3b)HEv@G>&8g$?`l9(Xy+U%# z|0qCRG9Rf1{IWTf${}*i9TZ&2GxIh=%N6rAsu{{RUme2lS77#|#ZaO7Lt0K2nfd1+ zS!^Dm%w&oA#zlyfnv+gK=T-B8V`$3ETM1rnUR(&t3iGFVfL}B3rb5i?<_ZUBsWfLF z1Fp)vo>J!3=G%psi5up1yyA z%r|LW*Jy4$gU;LL;%(5-#jpHpb>SN&-Ow~mwDe*h;*CR&~vxPyoz!R zy=M7+i1eAy?Su3E=2}`-JTz~mT89C1HGLdp(7cTvRzqe#1Zr82%$S37iVE$1T6nS#C#5%z89V zmhrg|akk7c0_S2WvVjvPEclO4xZ^B?^vPLQi^EO8-7Iah0C%_S&_lI{rRyo+o|eu} z!8>JX_#TayWd{{ioVM&;ipJYg`#n_qSXjN_`C5)$2IXhzc^MY`Ew-T;Ux4MzWi-JS zs|wabEXSH)A=DCh79$F?s1HK&jAbY7TEi{efKEJ+`OmuTsrNlvnyq0=+xEU%x%Xp=4c z=@3b=EH42r)v}S|QfZbn3ZkF4WKw-dx`lZixC@rmeGtj8TuB8W)AA0j$g(Wu*-)Kr zarpuO#d0mN-R(P;BKkqH9mM(Eek1ZP-c1e4=5|Q{6uk$3QHO-2(DSI zi(u%wgiei#l`Teg1<-VMt+s_&_>{ICoT)>^Kn!%&@N?i7gBTl#ds z-Lx#CrTZ;QBpoSjuuOXsS{g0$v8H0(w#@ZI(_~4fiq>XJ&e?-GdTigdyfzgg9TqKx9`9McDu?y^maq4~>;ub4BwXsWd@YBvE=&3< zNOoInXhYm%X>9}5YpLG`T%YA`0;qmV^1HD9&~j}8A_ErFTTnJ=*+on6AFmw``?| zlCAZ@4h-dp^$WVI?5qYl&2rTG96fjKt()kpr4Cl*c9=b8JzR!g<+yd{kMPCO`o$zf zoUE&IK{;FBrUDNa>oh7II$=F=9)Oe9`j^qTTEoR?+^ow?7?HcRb{He_ur^VBh^KXs zHj}5U{uCtfvhF(%k<(TqZO*-|?;l0uWBq+MRQp;7tpNC0UzNeEzjcoiRDktBEt){9 zZ4aCXvaZ?<)xp-KTcIq(YVkx9YWF9kf(YNXQA zDCeZ;AL3%($+H5 zS~m(_mh~o8EM;4{lzqHtT}XF$j&*4xet=8X?XzIvvUM?qm2<5DZvdBPT|j^<*40tq zp1V7=6uwE?QHTIYCzDzomS6k56U zjWf_$VNJOXE!V6qloGjaHPZg5()tO-Mysq7KJca5dN>3YZde=kgI8nye;i$RT$k1N zS1WB=X<4bI#b@um7pV<3TiP_WOw+P5tFM`rY>+MB0AwRWlr4M6Pys;{LD|UO8xfT8 zd!HZwoY%egywAAL=Xsuc&pG#@>~AQlv07gNmOECz%)s}%Ru65VuhuH_6=a7}S!_i>%E@d$qt=7jvZIjh&|9~`GO;hBn#p(+?T!1#Kzg6gLxBBfS^mSNqv(VXT z6%hpuT~@1P5Y}yFein*)taiQxb9=4$QE2s9?c>9Tek&#|_6Dr}c7UCOR$DV+=a7~4 z0!SIQilP5UF=F+23s^?2uC739%*sgXx^b)GO)zl6>N^T(+_%c2!1bh+-WF0GSmkwK zY|83Z4UC_*Izw;mhgRo5faph7KhPp-#_Bl+q|90|{)9<$Rzq3<=B@fEplHKzE`uUl zMzIHE+A+RL1i+s0?28}{49jOAj*KVXhJj9u@)k&OW~5V=+l3KEA)(_87KJQb87|c6 z#@J!ROt>>%T>x7=7+0SJ@nmF_V9bkAQ3R8`84(ndJHcq%f_d>_tfcIKFQbvFnfw^y zn^1I;F?=0TPB8@MVA5$u=Y5bfjQvz7?9cey7BT}E-|mMkfs7w*F?N;_L`$(C#>fby z1T!QqU=I+?n-G@9cybFYOK0>{KxPJG!6~q0GSWC`Wie9c zfy-um#fB?6jHfgJta))6@iMYFr5~{MSWu(yBt&ZVE zXQb;H&-1|2z>vCvG&1BTVMG(-(+Y@gX1LvjD=iG0IT(MB@iA2swlcnKK&y@MD}5QG zow4f>S{;lZ4*<}~*i0*dE=C9iyt^4&{)P`dj003g(aVUUGNwMp5_$^vGhC<;Y=9Av z3(E!>?;Zngh++R5TEmPNM$sB!NS?y%jxrvdgRn8iPZSy$XO!4sLM9k)_AvfFgE0k} zlZ^e#VA%u4>-2e*DMkVnKTb24ZgBG<Pg{gc4 zW5=1!^Z^N1W^5VsxiK>>Fv*>{xs6`e(aeoL z@F9k|l{U7qOa`Us&oh6?fGu%MCY|cLz&uDBzl+ShFF;>Bb2B~U5|}YLFd~te+YMY2 zQ)B}v$;?;jj!R+2(|o2f_c&ne60?@xscFm&2>_%sUseI0!Q2)OlF8h541g@A*&1Wn z%trcnVh%Hv&N$>U=c=GDk9punkbLH)G8liEd5(U<1Wr{r^^BOaOBAzA8=ncS?GM9W0JIk2K^!~ff{Ps6UDQEr=1ho~+Y&y_$ zgZWDigjF(YXCdV#)9^kt++rSXN2`iip@oLq%-<=jRn3g2P)iN7o?e)Dn8(-d zX+P7M3Rni1Z$CzN9CMD!2#1(jdRPrJU$ln45oXQT&@jqmdu?AL0jiY)S$M& z$jXU=h9uT`Do{;k{Y?AR6jnwp0I4k5IJA=kP3ybu%1gp>nf{o5M$R^36v5kVO>4}4W+ESWf&`CwNk|MI%_Biipp8P zP{gx>H5v@i^e~tcUans%BmM3!OEraTZwa zu(nZ6;$4=r47gfWSu_;Yv2u2R)U(>@MbyArWB_SomC~lEiRBy#Bbr&Mu>iENzS#%I z?y*+U5y)0nnE}GuSpWP1(e11_sw(SX71A@SleP9Ez`IyJ2H?6`KfH}u>SKj^V#@nj z<#ZZpfK_!5jt#QDd=Z>OEORTyhFN>vAZ&!S@PCjp%Gx`I&N0^FNU)5vcGknr30C`$ z7`xBfK}D~Vtk`k#&cwWk}`VTQGccJs5W*C?to z$J(+3WS;do9VWD4U#3)wExV0Ab!NvNR0C(vUfT^R4(zgMusE_GQDoMMt>?iOXLjnR z5az<(M*p$vINL~jbXWGj^c7z>b^t}s-PxZ|row~0XdYvpY-T<*c(E7L2F{zk^f_oa z!QS`_SbW%>zEJDSzDb3qe(W>*wO zD<}$N|JDg3&a(YKM=OXOdlDLg*(aXIOoXsMhy^^9ed7yg4`bI+b|;*z9K!{OV1KOy zOCST7u$Iza_Zg?GvQrR!lw)zq~oeC$?*yk$& zNM}EJ4J3nI^#ClH?3ZY(m&MNB4wJIkufKzt$YIZ10U(!ML2>9jcGgR7;oloIxP^kJz|_W5^! zD`&s{6CA5xGmqkO++c@Lgr}07Hvn>z9k>~;++tVLezS`G7exzivzyj|RI{UK`%%Nb znhx9@cHJrHyUU)U8iHDO4Y^XsR{Rf~^=z9-NNHgI6pOJ&b_ou-y#1 zLINLV*>Wn)m}7rI@z#0v;4&z(;e10&2V0JXw()kHj|MPi&pAkeRtL_y&!EAP^V>?` zoH+k`4FG3Ofe4CRI0Gv&cAS$E27oJP@Hd#`#)+ajcz4de?=j}Vv26vXC+D5Z(C)=q z913r}Io7nTKEXNk421b`?$e{hm-7T|tNl2q??K8*&V&`lPH}$w3&Kuw479&J!wGGH zOn=TQdYuJuBu&5ta^9lT7iT%o*+N4QXK5ljgE=|NAS{IQ>f-=}a;CNc9>#f|7H#32 z$7u;3!ST+4Es>np3c+%YQ~m;EMsbu45Ejj045BlJGexi6SdJA{wVdbVmSHT88JPRKBtqGwwF1U4zvn5 zXJ`>z$f>3{Z4u`is&y~sd`B^>D;(}Nj9ulNp@9B1&NmrgDdCL$43A1VFK>W>Wt>ez zXkF**T8^=Dj>}HStl$(=^5h2RXgkI#IrD6Idy{i*H2}9bOTI&^igRibqHlBBH=tF` znVP^@4X1%JF?Tq}Y5Q@Pld=zLYdK%9!dM;0hZY(2oW1nvfCkQZ8$4>{FnuuA#QBqc zgUuWkUAPv`>U_w&$7$_CXDi317q~XgS~`;0&Uu>7nsjg;&xf0xoL%&g>*6rzD;?b& z-Eoi}P8h9CdpY~;f$QT;{0*7?oWDY$Xn^zHBA7JDv7sQ>5a+MmkTT3^JprdjI9U|G z9_8$y&w-3_K3NOxzj&nyR&~oLfD1zn2{rWcubLTcCLy-r! zoC-?3xp@@xIKfS(nrWtzsSxgEXLuXRoi2iuFm78KTnXov z)AyPqxQ8ib70I323v!OTHxR<2xX~1|isq&tg@G|#^^<_day#1rIM4ly(sFU!{l_tO zf%|}dyBE37tj0{lb3<-|GlA<&o0vpyt1a{;aciO>ESa14Bs@ytK4^nUsoZ&2+4_k`3FZ={y#az)8$Q3Swo{?9%JrohV#{KFG07|$= zXn9`B-M$d5GH%}lTGzQND3Ddo-E<71E4Xp4=)A%GRtJ+Rxewok=$qV5dWGEL{y^L6 zD(>zeklWlDUtFR>N(kuM*thX3){QyWFxnXw`CSxR6rEEu4kSdajff!42G` z8Ti-8^)E-OiJMssmS(QE7Ou2#57Ork?r|fi#-)|}@+v55EUW9ciqeV>l66b$Nj(xEdAW&^xGZa&i?_E2DyLUhlU|; zF(to-xu4T#492*xQzmqryY)|y3GQRGD!I?C{03?#xmy!p%L8uzUm#Q5?^?hz&F!NX z?L%(FG+K|iDWqtIdnOwiX1U!|%st1=@d3*`cQg#dhW9HiW^H->3!%@B=fa1%_Pot@ z7<1q~N8vt4o?ts%apHaU0>+$qU-muMe#NUgl?L1@bO^4$IE+K0N>u#LN8z`ht1B1PI~r=g|t~ zmCzUL3SAj(EZaf4$lIQ#b+&stoE)1AdFyp*@4grc6a9?<0EKXYo7^Vl11-rDCrf-o?iO z&*k~6K=OFK-GJxw&d_r5GVkUQXei+MzJXRDk4yJT5${`y#TN4vjeuX_1v|mqt2_q= z6kX$mQOSD=Pe~8sQl5??f@QpAv?9CCE2SV_Iqw-N$*JHeJYdTW-e6egS3>7u2YJs@QfY`+MxVJE z=6(Drj3423pM%U%p4)9G8sjxl?rfZQIUcPE-bEpB_j%{4!8yrO(pKmJZ!sGzQ@n5w zbWZcWq&VM0-pTcl`H1)F&#-KUXZt0LnB@)9Q+SS75eM8n?+)b(Z1@}3!4+Hn`kx`i zj{klO0QUU%!y(LpFQv~AI`W6+0C(c=Jc~|ee!LA@F8uxU(m&4MMRiE7{9n4!a^w3r zK$ttfWiwbj_#*-+^5p*<4Hhr{U!`by^H)*S;RIjs3q(8Mfgg;G%4556h#UNpP|L?&P&R;MD4H5iT^8kG}d~+kl()iwDkaYeY5nRdOzdYxzUX*R=<@ZfPSRa4*F5vzA&*}8c0DmJrtOoi2 z&;iULzAJ?(hWW)5L>S>aWS}+5-xvYF7=N1(EaQBxErd<*7hM3$eLk0}5GVQ0bXz>& ze?+(F6n{}VSf=@ZQcUL|pGm9HNBluLPBg<`z8WmE{1?|?Y>xj*9<=Mx)d7h1p!~fKL^38Drj&N7%l_uB>0DNiq3-9&ciYn!TkkbIWBm(9xYb^ z^B5Gl37*OT++EN?>jDqKn-_ue6g1w0S}(!3AArSM@Gt|~PY9x;0QV7Wp*@hVAdcRY zeuBaSnCp{*wG!aY2#R*2L0(Jltg$v{-&>119+XP&sAbBwW=LG)e;dGSXStUB71>Me=&lo{bBV@)3 z%yg5S7lcq1aGZcm5s(W4#SP#t3Ql#wmUzKmwChO_aB0PoD3E@OR+7MR71SmR7PdlW ziXguh#-|Dbw*hxa@E0v#(*)vAK+**dD2GpZPLNN#&n&@CF9^#P#M1er9KjD1 zS;!UK`x@Hw1hMU~EMHKgLF=;MDLOe@AXq@>j|v5!%|dOF;4KwciUnUCgxV_tZ;GB@ z6&$5~>NUZy-$HbWz&8kLO9i`f0520T4`E)e3)}|*C>I1a170Ec=}#DVLoktvu}ZRX}^KU^#sT zyH0SM>JIA#b9AFO2(BIlyiwq|7;2jY!GFS*X2JKgnQRfP`v07pU;*WQTLsH0?Aj(M zrLT*(3!-V|*dcg@%JVt}+vsQ7CD=*Hp>Bbt7w{f|*E1OF6~xhpAo>I=&Vr?1;Qs?U z2L!9>E0lwRH?q+h5-fNHxM6{r7P=#Xr{4fzRPZyEQH%+k=qSgy;G1N?Cj{|SeRE$h zOYh=IfoVVddmwQ0MQdJg`3(>o;fVscX)FAaZb}ECPaT9g3csLl4LAw6(u@7Lu#e(k zuEJ;ZAa25Y){x>Z?6Crihp_kpIz5GJDFf~$yhA^IZ(%W&@tzQVRE9Ah;n)Rm`U(vT zf%6k?Jq?zVLbqC6%~QfDN@1TCuDcBFXN0U=a0UveufvD4!j+prf`pHM50+42Cl&pK z2}N`tg$t+VK+X%fKLZyh+(1>;7laJjT3!@Z(kD3Lh5x*W&II8z2calYxROqgBnhPy z^-C5;QL#db@GV+SrV2Bb0B}jzNP&{-GrNdg}w~oM-3Ru6pn3z=q%wP`n6^Y z1wTP_jxd($%X5Xs?O@3hKA^?TRw2x|54AUhpHpD4Qn>9paJPg} z^bDyIp3Xz-w(u!>2UH7JXF^ep@W26#-4Pag09PyggVOMI!j)7|QZJ191e^`Rt^~9i zg^PJ`rCIn%I%cUw_%0o*yeGW(6zpslKIFma4&mlq(9kKoL?^qugdfs*i*Dh47j*Ur z*Pg>H^$Oj&fcFXamIK}|bYFzA0pa&rbPfvbeE=8|{`L!u9~OR1Z^IFx3ngwxg_ZQa z9TT<`L&~`D)dZ-W5FUw#f%k=vOVK$goL9hy2f{Xcw5Ei;6!MxDM!yfs9tzj>L(wB) z6cu012%o3T&#X{MF$fz`9+mXliqfdu*iQ8AEwt=K#gqbd5Jehbr=!T54}g>Csjtv- z7Hyzhq>IRoLfpqihj+qiSJ76==eUU;r*-lf(e^p$^A~y2^aO|&e-D;GQK<(!IxAYp zgp?rBK?(tfh!*?|K&YtpEdatqn`n6#E_z7?VG*LF9ylE-%A`b9l*mhid5IQ@UPNb% z$VioAv7-AUfS(tAP06ndqTQn)7e%EMQjZt?OL2w-k?kRLD{j^iDT4WQsOCjaHVZ_j3r#7KKugLyl-cBmnuM zS4si6EZV;ftpZUKJ&B4%PgVkOMf6DsT31E8cj5Y#iq2$#vrKfD?vCrCS=u+=5Jhf> zuu4(?I~cnuVs3zAw?%O#sI3<5+6_`8vi}}ZYDN1fY*!~r^v0aki*{4Qvq@C47M;za z$0%sgBKqPJNNE#&ONAlrqGb^v9is6Puyl)(9U!Gg6iA_#UJ;Xx3F#BX)8nFFBwq!` z21Gt>kU1!7q@VYY=*}8w9~Q;2K*mJf&!cl(bf_3ICq#w*(Dy)es1vOz(XBqfr$rm8 z;O0ZoOO%j#B(e_xU`FJ(2L8>9EOZLnM$Fyz$pXu9 z@$N3z=_(F51mY$>_82-(i4Rd$@3h#HYHH4ipZX1*{^BK0&=(*MTnz&Q#g()-JS+ay z85)Ab55u7$So{=4Lqo)i`XMY-`~hW!!o=A>!`yIj>?TNw5Kk3?B~m=_Dd6YC3!1?h zC63q$(b3{4JG5fNCK2W(R-8!dP(ypf*J;Dg-=Le0)2sz9eqG3k_-F7Y8tB>0;@?lAHD%{U7Yq2)Rv3yJwmHOJoYbeH^lpwV6H30x94H? zO>yE9$h;-K@eG7jiGS;b+S}qmDp9Kzr}luQM*LT@9uy}_2Pw8i_;+X z{|TJUVypk(*osa0@aUeHVFzgGk@ooC_ zQNQ>}%Bl~DyT%}TP<;L|C>jzkd;*pYi;c7b91%~_{XQzbCI_&q9Nn#Qqs@x=U_RVXKGam0q~%DPhuaMK4Jm9q{&+taF5A zCnTRv!w4TqxF7WSO1{|)7C*^{-$U(5iTh@7o|1%X0QZ-qP@E`0!k`pPpyX+afSi@w zr07ki!af5;3k{>HE79mkm@F7xSP3!V=65R*D zMM=u~(HSji$%IKUl0OPDb+M8ol%YB=**J*KILQ(_bY76SYasKY#G6V_;w6J|APJHr znyf^LYa3)HNn)GON|wA)4Yetfmo5R9CV4dd(LPxx9T6s@b0KdEg0nuJ*m4J8u6ClFRDSw&%kGRgZ?R=h> ztX`s^ZD)fdB@3O6lHAkiY?3tYf|O>-%Lia!tK>_{7q>}N|6d{_S=3e#t%rI{~87kO2V{|G9+0+;o)J4Ulsr(k~=hm zqY_pw9Gj4QM{mme5{Cx(J}DU{Zy!jm(b{xMvP=y4v}Bxucr%j6sBUyt64?!wIf-s3 zaPyLK377t7gp>&B z04*dUrJJiDC0go9hk#?G881UhtkmWsw9ZS{hJZ6p+PeiT7o>;#;cbF+BLkunrQegV zBxy-ACM#Lm;RRfZG<^;vRr+-UI@6`o^tQ;54vYejDgB-H=!McE4n!A8<#M!&rLI(X zeMNeJ@)lR6*VjYCHK~lQdx>=SYIK%LnWONwOqxVt(CgA&v<54emeaF-R5PeIU{SHW#G{hCcZc79Ig=N)JF)hJsq#ZwCUhYT-DM4~q`XCs> zYNemQ4S1dO#r4ovFTMFYa1GM4bP%sm+WR>aHA$x@(Q1}Tiont$^`l?NJ*hQ)6uVWL zP4B8UsZSlGv`aZMkPhj~E|AhGwNOcamsIp0CZt>1a21_BQa05=^hym!z}YADcmP}a zrLT}<15#hgk`78eensby^f8Jd4NFgKN9TxCRsijz(kvOq#-tPUFdmn7hCus-^j{6e z?n}oSKqjSc76I@;>JSO1r=%Yn(K#)(3dIaQlztHkR~|{fqD0koK(KWWOwcE%q|I6<~3YeP#>MjyI{4uOurB^J!C6>fOb#WceG9NlKo5ZGjCb52LLBz zj9|=}kIatp%)YXl^hofNSI6j zL9)BF25C2J+) zqh;Y#=Mf{TeGFrGJ^O$O3;yD_7R|GFb9tyi&CCWqT=&ds*g4#m)t?EQ+ue$|Mw$Et1`s z1+G|@Lx%~k$j+_<%T?JXDx$h3+e-IXi7fR)v`S?@ci?oH>`^0(xGu{(06WWNN0KmB zA-hjW!5cDkMz-Z!aNd#0 z+o0$!jKEl}%)tawCtF8(nR?k_O0PA@K8^*TQT8649BPs+ql|5{?A|9JEi%s{{D|(! zvZjG+mF=LEWSi_@J@mE9{(A|cs`49gNJLOvopl>wQfve&kNWlWZ72PxySGZZtPkcGVnVfSSz zFTsdO*_R^B(gT_49>%6*nhHpnmazf>cqm&=Riuw(yXbttj4bYHD4LZe(8-}W*-}~> z&C5QI1dENFL+ejl`In6_&`!Rp6)g7h#k8$y=W+Q8 zTA#Vf_xobZP5w$L03Py}-hyaPxkDaWUUDBBz`f-kQ_}N<+?OIXzH%p0F1|3Rhe!Sc1?fQQH{K7#L|at^(@BII9C zNlv8vTM~Uv{_j;tiII;`7&KPCNdV6Ca_>86#mlunpp_u6rqyAheEq-ZOp;Gh>^@l@ zdI2Ow&RY(XQst3P!uU(_UC&^y)8z4#XHJ(dvH>7NzI7jFH&ecz-XvM_h<@nHmPe3f zIr92%(8`s6OTnBxdG`Xq^W~q=y?I$a@*7$O@~0`ES||_x2&7E@`3rFDy1araWy@;G;l-H;!>0$ip1!{Xv-<3|OkpP&&MRA|1)Q>A{>4Pe+3cVj%Zi=84u+v@9N%ype;zPQ`o{Gxn0Ps>= zx(e;yir7T}oKUD}DdwYiIt1E%6+CN*_ETJV6S$L#Pyaycl;SK^M4nbGTnRhRD4q=m z@mCz63fch012s$vRGjz+t+NVK9RNX!HyLOJE9`0g5~6rJ7@|WJ6QLksicxwNgeyjA zQy8IGNN?Xr#oNE2bxx5&alR-;O&(-MD}rdsV-$Z=f-6>0TnchQ@g5};FDmZPJ0M>1 z$+NH}LGf$|T8WBDx)G8TY3D$a6=9UJOHnjaEmf-GIt7F;DUML+F->vo8Z1j!?23i3 z48{k^lDbIXO(YY3+L~&{f+$>eROVxyBij9=^ zzpn74t$Mj4jS|ciihoDZx}liA1$d=m6&*FYsfcTW=v#_t3dVIS zR8;xiqY%@V1A7&vZvoe*c;OKg^(*$jgw}u}k5Yt#ip0lZ=a6FSVkjC`_&ou&BZ|S7 z(Hd2lDeW<)kd^~5u2}gL;1h}u52N$GBJ2oSlL`wx5*{d;LclVmn4p!_v|<@;s2(b6 zj=||i3R@T0GNUMd1NvqaJKlqvbBYD8gUl<^DN$^r+(tVaTjg^fz!p2@82wjGd*!}8 z7;{km@FFJJQJF#s1SjPS^g&H$W#%Y2U6j`%(Q;FE4?&T;@@IP7dno^)3R+L4`X?CS zrR<>Ri??!~LKr8MV-$||QRb5rU**^+%=J^+QH=AX^4A4uol@pM0hZIsr~Cjoqs+Jh zxWDqR2LJ>pyO)A9P?=MQ)>-8%C!jV+*-5#cU}akb;33K;cXWm-W2a$DnDPw0SHhKM zipE4J-=Ga~q>@ADvd$^rw?}7`ay=!Oqm|3v!B~uP{c5ygl_Sn@`n+=EF35~iZv73M z7nC0tqjga^xF4e9mEsN(RoWbxdWY5%5RgP;kI%)ea@^} z+43V~)+nE2p>;>eq`>@LdgV)pFxL&rnmcGUD*dz=Yf{?S zLUglo7sbR|l)NFp?Hx4lYdsy^*gM$u`Ve&qv-QVl4>-Qeb+a)|ahL&{N#G7c-Zy2H*9rQ;Tm zQRT8~h#pg_Xyq}kyiOa&38j|SruUV5=t$J0^5`Eh{(-W06r5AaF51UUD=TSL@=$q* z_Ti6|Zmcqb@oV7pP_aLO zNuH|lT~Oquilw->x2o$sXz*3-p){_aYR%X1_N1!%HaJhIy6Cj{Y1P61q4SK&o6@oV zs*fp+8=#7%*Li%fA#|`Ro^JFIl}{g9p{k!LT^Xior4yUss$KN$ zh6vTEchHJd{X_Yjb1E(^%%W6PwB?RgZKYz97}dRb*cq$ZGmg&ls?#x08>eFY1l$GH z3o(##QFZWZD2i8E?E^_rxsZQ}svE~KJxQvCE1*4DmAe6BDXRA=Rg|hijso|XYC9d} zNK>&3FqW>`NV}d4)zMnuGF6Kx`<=s%;dS%Tet-2$o#cbCi?HQz7b#drYOO zhe?-JO%$dmP;ob5tWdRu?%N_&9~BN3tIpB(>Wb=L1^`!8(@hw=ruvtX>m@4bRm^Uw zO1c}IWvWk>!ocgQCmHasT(va|oE0j?TC{GcsyZR1QsuS;if*d59f2*kRJx4-RH?qM z0{pfr;{(X7R((#s-&KXJ2B}s3tAms})$5d~s#i^Y04WWsnk#@es)nhcq)By#zADkI zDz>1rMU`_KxO=K0a=KO3?gE)@s$Jw*yDB#fwsfe1D23gr`hoUbU8>NhAf;QC>I%zx zRGoCtw^ubvS-n2hd-PW8SM|{vb3o-mhb#wGk&i+2kV-iXVZ*A`JK)2JYHALOMpc7! zIBZO1q=O{mssYMrOsM{tg_QfM!xT%ORPA{dtp}>V>FGA5;?m`xR=phu#~!LS#G~~{ zb^ZieGpde7uyaQnDgNoC9-|eDv)Z0^yDsV@2O;dZdL7;GuIk6Wf@5y#FbeIstBqe#sh~LF!-pfeTi*m!lP;Hc_Els5P7pvY}1mn-EU$_myWO_XTj&GPBf8!5GU{|DJ%c9QEO4Ai3(3bhI~5-4_d|^VPnTPra;mi^EJ5s8cAkQ>bQh zz*(ezfkIcs>b=jv&MWFA?_%t#I%*F{sai~h}pE{0e&->LSSff5Mpgv7+!$I{Pioy-4?|Fa>t6T4bjHt`# znChrHjtYs!)W42^JW?N_N~an1Q}JM#RmVIIVRP!`6zrH+Pf&cxM&m|R$F`bRd1%>b zBA0^GUeiT6DF@9jp8(*f*-3RzPMSY|gk#Q{3zT7W(FA`7a$NIH7dl-vb?NZIO|$YU zTJD;YhcF=?nr&mid1{sk(DKq`r+~#<^Z7XRozVEx`^ZO=PR|KnO%nai{508AnR8MT zNCBx+n)1W&;k0J55>pqTSs98}pvKS(a#pjHW+_NxPiHuSH3`QcEJXAEThI`yd5(4( zVVZB~cNVUR$wy~|=4;xIMQYj-z0^p)*5MLQjTF&C5Sy3bHgCcfg2j&7&{ClA}>ZLRhZm zolWpPPjjBOZ26i*+F@SS%+j{ANE5UG(^{ESCm&V!=qPsO8d<)W}*~EdcUQPZlFk(P+YZu^ynm;KiIHXxiPpM(eaxOYYG;1jT zKC1DfkmZ=hBm&F0#`_zHp3tmYg0cIW`X+cgshLzj<^#>9%jlfa99agyw8kqR`W|W~ zQ-GV*I8iCqoThgVSmrghRLgIp9bONdt=7#3cG_v@k3yKewm2UE2d&p>7~!a0M=3NX z?R`q6IBQo?cECmZHf8mWYn4(=kE^!veF$^Y+Pn|AyH@o!h=;Z%5X4jaG^Jdjo$W9%R(qS?@8`9PLNFGmIZU3tGEaw(zLhf{gZ0&L>SaP&B z=ipJUR!{NdJncK5L1w$Mo1HQH_c;Jl;tIDyW)+Ds~PsMXf~j5({*zCb&$dhO)|sBO?D z?uFV$t)~rUqDedd7D%)99Ri?L``#7^Yt#C#$5^{I^e9M&b|01b zbZTv>%Cbwlp91XN+MhhZ*`xh{33#uT&4Gb^+SPPX`?ckA00y*QF##CVE@=kKkamWG zhQnGZeYRvo>pBVesP?xn!7`@(hayO9 zj&{1T>j2p6p8O902i?PWAk0zM_W?ScbkkJo>8x|2?2e1Btqv^5b^TN~>Z-GzN6Sq& zKu3Svbsn@@^Uxinsq@tN(<;_W7cv9lts6axSvsNnoX+R?=)5O^^VJ<0K+8{eioWh~ zQuhiSzB#4)E)8R+bx!V(az>}3Y4z9rCPZg|ZU=4I0(IsWVf#orPIYzgeJ~R`ndqD#O z&+EeIIUlF1cpZu^=#r_R`Jzs?0CvXfVrb2mpyS8G+(g|0SCAxKzcn-@>!w|SOVRyF zImJ}ns`nuCl5RmWT4}oRY>;%_$3Fs)p<7PnWSP2f+E8Wb1|Ns$Y+VaI6?1frn?Z7Q zc@$*M)8&gWmaprfjOJyX;1E12(8bcSsZgiwfxaT$4yvXo)@i5$^NQ~6n7=(Mvv}BGf1ya^(K7p(}n24*{^e=6WRm1hBFX7s0&>PmLc7`Y#2DK z>j{8kBRVrxR*mY`Zvf|*uAf-ObsuzKY(n=vADs7fM=7TNNmN z>uio;mLBS2pMaf@bZ=2Gd`745fDyC0mlGg*PWK_1G_Tw99;DdlKVFTNt=?fA06YEr zqv*8PZ=ry&gFfySh@(Ct1Zti1SLh2}$MsMAflKA8x1ndUn?9e?UGDmQWUhyP?ODu( zr+(?vFv&~b@igGx`qc*jKcP?m0yrPNFFl2Q^{-UGPCq@j3b>Q{_G@UJ()aQq^R#{m z@xO>OJTkm!!XY3mzrwtLTN2qUTXLQmWqV1nj(|H_>T`G`)By zI@9&v-v=&3KT79_GWC6Hpf5|GjNiZ1JK zJ_eQo{hEWAi9-FK&JbOsFQn~2v3^T4+`OXiqG0M(eJ`!Oujvyn!j%&JKfeM{s(;}L zOh}nNEd+q;dJ!E7F4w2I0au~lLLuNA`gIh$sML240&r7bNqM|m`oAdzRi)3SmDO$i z^#IsXt!G9g4e3iZqjOk)kbe3jdV47pjq0!ch}M|? zgQdWY>)(t3=Y;;+SFr59{sTHtKB?dL6uf<)FEyhzrGK#vYNz#IL;&|tZ=6HxkzV!) z@EQHiQ0SZ0A5cKioPH@KzvlIk8_{WF`0G;uYzelO3IU*Fsz?Jr;lNm1AOo`;Gz~Kf}E;=I&E~lU< z(va(j&U1!8X|)|?`05NgqYWJ^U}ub>Gy_J&8dg#|;k=uJZ}Y@E3Q4KBvB5g^Bn^Yxf(SEDKd8r+Q4ls$Ggc4lDA!}!|+Xz(;XN6#!T zqmWWQ-p0?jL*EJG)C&Bhe2nkl3rtV=8mnoa<7eb8h4zz1HAy*TyljL?r;SGzLf9Fj zH|?(djYst`BEY!xam;6+aXY>7&Ke6$UAsMfaF-YB{828DFQO-fUyiDk#b^2GNou*Z2lSzVeJuUW3|v<4^P@fXl{D zz5}knIQIoO3yr&Op|i+nrGn^UV=W~Yt{C^9#e7~h`WWEtHRBa3-77I}rrmt0aXbko zl^H*!%D?NzfES^t+&HifiYkl+M_|hhx{SPJD2swvCHUeF#cf+#~O`X+UhkK<0&BAY<%)F zh;A_!(5~*D@heILwi^4cLRgz|2fcRNje5G^9mY542uQcFq#vCBLsa$ zKT3=D8((#VV*|!T4G=bHJhu{xhK!59f}O+0VS03p81twMd(?Q6o;G8~o-E+Tjk5-{ zCX72xV7YI6r4g-3qoojI(?%v0tUWaDq*BO7#;8KHW{etIkk1;eVgZ;lYTtp(dE;WL z=d&@%96@YN4U{slGeyt_$KJFy8JrHLH{OG{j;015XmB#cm4n6E^!7;zb1@~*!|}K& zB@r52O~sV$bTfS-ft&88Sa*zhm_BD<%+pjGh%qnI$K;r|$?zS#Jz-i$?-d`@4`tBc zYjUILmY-?)Q2NeN0XS`vWrO96sqp}azbUE%ECHrfOCTlC6q^d%S<~zE zSPL>~XeNS9I;x5fF=bK>WT6=a^a}uyrr#+df6la?vWQWp z4bgBq+EgV3ON?o1F930-Q%%rt!So7Uzl$a&UB7sf66s+cak_rV zrbs$(kzz`q>z8UeG_$TUQ$sbUiXX1H@qcJIQ#t0o6e75mN=?7f?Nnweih-i*CSTeIl$+`-Jpl#9TSu8xVxrKI^tPt+O3E7I@7a<0jM{bXiwQ-IvWa>M$=d# zgf*GIx&+Q@w>IS1{nrVr?=N^PdYxd61Ac9cRZqttg5Y}T7iD7Q9=`NM>^qGb?V9Y@D(tT4{8Wc^M;%HU!z!bX+WXiPoY1lb! z%KZmY9-3HGgZ0Q1T?k<_rY?%O%$nR;kTPdVDFf%c>AxZn8}k}km)n{b4Z|@za{(pg z?ahO1a5|We?1OekvmGVnoy_C3#&kB@P~67F{0$}LkDJ^7fIe6A_%S%`W3MT1_Ww`BnTvM-aKU_oj+k9E-}x5WAMHn=C7$HF~_`<;#s+7TOCNA*~$SV z-@Jy5xNNSV&t(*tH&jD(q51J0Ft^Bjn=$~!W*_>xz!kIVS6tMq<~@5bcFjE31DPe} z&L)hNn$`cqSebcr9%I+dcj=}qH)}ousW89Df|MKP)3hn9G)I2~&YR{(I{0_noJW_j z+I*OzTQ%k{o&vdJj-&d5yJitB$ZO4eBH>D%xhf5~dUNzcXlO8>S`K)lne_%plR2Jt zkoJ%93SqtGjC)||Gxz(W)o*@{PG}F9uSEeqX!gAb%ZAJ+=q4F9r|f#wN|~R=_)Bs1y}4X5)~9V zSgbYz=V1t^@0)U&v>Hz@mmh)>d=3#m70W^480^Wx$UY5_O z^48nZa}b>;EFL*v@v$7rf@ojM7zNe*EQ{#)(n*Wg0!+^-OSUJ*PFqmrio439`V}~T z%L*-o1y~X&G8Aapbr{~BwZyAIf-I6SSQc#ggO0d_Smx-AW~e3n5auk*5Mt@uPiCp5@3iSn@3w zYGF&Eg`tL>MHYA3wH8~1p}<|S?Ee3KmBoSf57#VTQq53_rG?7&OD$7Wy-{x2J`X7s zmV$ctaKrL6MVBirc~m}g({ir{9^JA;p9HD0{HcJH+m@7@fLB|t+JdFV(nc5Hj-~Vx z+`MafmFfg)EwcZ=t1MA_U`xGaE1lA6u>5-*PB&VX(O0dTEKU@8ZnjKLLVJtlCT)!F zSx#QSSgXaEzH`!MS)+kT?H0u+ARU%cDKvCiIP@vEF3Xr7THTgbN<#KnzMvbn*RqX% z`h6BwBwGEJrf{eou)Igr8-tc_)EUpi_%HUQF^{Sur%)kZp!i-Jr1WWrzqO=(89U~mPeMVa%h;b1P!2b z*7C9kI_E5V9%7c}EhTxd#m4&UeQ4QQFQk$jJL~;>p~2o-@h3Q)tYcgu)7kpVf1t?4 zdg>oYIc`1lEE!L*)mvwo8D0q)jMQ-;ICdh7cb^R|vj#blkZ-a8EKKGqKpgZNr6 zrKFjkwILPcq%~tP$SLa)DiJ+x-Q|UuKV$tE6(smuub{Y8fVDdXEds3PsYtheW z1zBIAI^$sLNcx^mh;#g(?jp%@itaZWrU^#C+Acn9wYq>v+zhM0g8)Fx((md0hPJtT0ealEP2*zy&){$+KXx=3azWCGN;H|Pz+qL z_4BkBy<&ZE61c0@ZfZ!mX1&M}fRg{?=*r`&s-C!J{xVH1&1|tW*UHRFTQ!Tf@B6~r zAC+0Tm1S0%2@0ry$iB*=?8qVtf+(Ww$i9i}$ReO1Aff`o?>qf9pE+l~GjqIibJ>93_8M4tIe9#@UzY4#wIkj+qlx}<+jZ{dU|)* zxYL@U)8>OmknFNK?TE&1o5W+Ve#b_}2kEhiOo6>#8wWaf-Dl%PTa3FlVO@~CXLFQx z!u>W*iD(?K@t`v7`!*JODGu70C~P-mv(Eu!*rtk(v^}u->A#hxQ)k6h)me5amFy8+B`>_&`Fy&D2z5` z!+s234l(xepwpi5rw+t{F|il$!wgXgTsp#Fd;}3k#zHE}c4FK=1>(#IqGi)jM)(!< z9b+6l0>E)bd>q_$VZ2C3f?XME8K%dLp`u#26O7b6c;?QKt%NTp85YU{doYeiVGN#( zH^Kq%VvHYyGH-^Ih!3NYBCNiQ{r%wl7`xs8z@PE&bu0KS}Ie56HV1mjEE14S~bY0DPHkkU#nn(?s$ zeKCy6J7|n$*q?-!IEIjRZt;vlApmC?5qrQTFm6-&DUq?M0g_1!$6&aW%=nYux91rD zz6K{!7^#gAInU^#4b=t4YB4ONGWMQdyxWQPq8I2{3oK{@8QpQU>;K~@W=V7m$G3*bK3Wk}s1C3dV6+Z_j4%>uBmIzZstdl1GG=ap$RkD_{Zbz@rqjm#31iluaAJb- z$3c*%jA^v_nPh}hD0hl+J`A`+Oex)9_Dt_F5C^7P2ylm)&F^B)jxf7E1n0<{P8OV) z|0@J>X4=!{;3)I(f4>}N@EB(4IMaUsI^CGd9>T&2<|A4HxHB142Y8aX?l1rz%vh@5 z^<-YpMV}XQg2LF|OdTx?eVEfJaP7x7XPCRg(HFt&dmZpd zW))RHM=@V~2e@eFSszHoFjp5tGL|{^2UN!~S3iU=@ys19AZM9x{Q{8$=9Mt0PGm0o z8}KCNM}I+CGV@3Q96ZMy^ahv0{MZpLoo70@0dRrIA}y)R&;t-jV^04aPF!TJp9RTu zCgU8GWiSh$0e6YXpjwAa=08zz=`z!m9_d$@AJL*aiy8SE`mQotQ=#QLv$X(sPY(0r zAvESPzohq39y6Qr0r|{v3N{unH_^RR$lMqP$s%TNJ#fX$bFabP4d$iG5Gi4HEd{)k zDfa`ej9DHBQqEjr4?qReuo+w>^QBh+sA4K8xKhnrF^mz_Fi%FKua+4|DVRFuAT5_~ zGCk^mt7pC&3`4h=d#OsHfmyCbVt5!=#TY{$^Azn#?lSGZg_Z}*hhMBP9*4GCCaAeJ=g@hC9 zn{WV}S)WiG^C)Z0H|RUY`i^kNSp!z+bYWeiAD1gjY7fqhW&aN*@+8YjnFrWHlu`COnbctj2(#ec?)&O0&vn;oVu#m)J zQJyQAbw`W7bF9l$7M;Rc^8k(KSs&hlp$n|z6xB>+EuD|PG}hPO0C$l!vI~vZSnnQy z>g%lSv^LFQJ!3*&F6#uX67pC(9H1qiwT!a=1+2g7F+GK>A$n65v8Eq`NHJ?y4z%20 zz48o539E@zm$I_{gxNCI;~Q|PoK+QpL07N_IcTh8y+<*DDpnQcxvE(SXECicthZ7i zS<8Bf!ryhQQ_InKlXc}WxO!Hi4wAQ6PPCP6V0}tul8vk}HX2)5V;Pw8Hdf@1xJK=) zRw`2IU=^>R`;4`GC$x02X3%MYZdPF}xI3&5snoiM<>P_IUe={Ou+Ybfr(=0{SsE9N z;T~(+w^-hgs{Wu>1k5q7jlKtlFQTiBL>{wdAA?IzSg(XbWQ_Gh2r|xks}^K}^*1f+pR(3aQOqQ(;X7ELVyWop z`5|`GDRA~|NBSW+uybkMdYC=)8Au*s2i?T@9NBwnL7dp?c4%>Cr_(O^D0>~%@El{? zPJ{Eu+2^T-&V~I46^)!=`%{UbJ3BKBeJ9x^Y7h_h<}ujwWS<+u_`KNF^sw?~uiXyS zKJ2;MAmYpJyb53Z*l&Ce5r4Kj?REp${%w#9WWSON$sqPS^I##E{nM*xJjI^e1}8$; z_vx(`%Ko|uePQhPCZQ#q%{~q%PP2FX0e8=^|3^8#2=;eu=!|50B2+UoihZB{4<(u{ z`w1d3?31sdoMlp)7ht7!DX;7$iSe_9MfS?p_k^j&4w zNPx>`Usb`vHFioFEL>;z(pM~U*e7Yroy%S_h^v{$UJ{DFLbf3il11#TIt;9sT~9lP z8|*8zM<`)$nFh0^?C@CVEMxEc6o$&#XX$BL!T!<{@JhDnJQ}OmnR78A)$Hjf;aLqk zV?9VM+rbSk)v?p4M&c&BD;v0aw#{V#Zn4L1!)ybaPeHXt_IN4aP3+fbwbsnOMQ_*^ zcK9gzTG`PQ2)WIEfi{dC?9D5orITI41=q!vhC`&At#}MS@30@0fb_6u(8B!&A1Ia>Q#2T#GiNpxn;hk+ zsZQV+C#@c;k8^^qgSc>34uZIHW>EQ)8z+#y>T;4(J^^1mIR8*c&y&+cNl!11_y@qf zIg4Ka=fes36=U$_$SDfo$Kg=y(4P}miM{|%x*TH&<49-#ta$Vxg zZNpG9Ia_ExFLUyy!_ZaE!tLnG=9vBhxyJeYGvKasZuG)>4yTvGuDP7XbZ~hbPrAhU zoabJ}7z#MI&tm2aIi=OGP{dg^4I;%HFK;y7;F#7!vV^nLAMjGn99m?QaekwdAmyCT z=w`3rET==Vm7Gmq;)+#qn0_GDoJDjq)Nn3Rfj}+Co93*Jv!3DwH#zS&fve}-^?-$2 zoYi#w8aNZ*!|O(l>(9{H#Cd^&7R{V}wD4@<1iTHMt(+%xiQ72MPO#U`DSHSlw>bwW zSk=K9qr7M*$BrIdU7XkHut7KH38fS6aMId9dN_|aK-pbR8GZWU9!J^-uAgHz0zSa` zfGUsfbILZti9wFrcMuuk^wL46Va_1Et{-qdWdkt6DSI0t4>|6XPaWl~qf@nyIHx&q z@G&Re8Ook;b_n3-80Qn3f^kleH$)~le}4gyr<@PM&^XDNPn*{%jxiDz4spG|gmruF z`lE2(ft&O`#&?+OejT_Y-0gO-?#LaY0Fe{-U0S6(b630!WkUOC8{T+!ZIG+MnzE9-I&08UkT2kh^m?xKrGR62L>aZ$;yt2<494 z0T;$iq-zw;ZH|GV)7%_dxSZiGJP&sxxP>Dik=*y*fb}SDRwG2Bxm|RsA%;7b^31W^ zB@r+ihnybz;<*WQME5NB1zMLUaHpsMFp=9z)pkkTNIEo^%$1&W0A<|BEAYCU`yWSqNVJNhQMTWD1>#oa-L8i#m$Y29kivpWK_4!rDFF!sYd zVIts1co|XP9C>#s)$YWbPH<=52YX=sC~si|R3GD^(gnXNo~th$bm5i%3T3Xm=pk5e z?l=xk|*2);=$W_50aj|zv(o!7cXrq;NCo+cYyQZ9sCUze0inc z!k!=RXg>h{yblN9U;yub&A68WdGFBwxdrjATYwAZ1ucQ(DV~C6B7`SlLT4y1z!#EX zyau`>!+CF%0&tr5B2_4!;f;_J5xhaVp(A`u`jUCx{jhM3_Y4Ehr|{-{f;l_SV=YAE1>X378ywzB zf0#|<#WX?7MV^)N+UdMxKPb!K4ZQ~L67OwFy=C$~cY@B#ylh&KU*U;CzlRn7aE&Yjip9F~F9@_zgq%IbKPR8n=5$EN3XJ+HA7+%4W8R8ii*`}!03(#Xr8 zfK3x`{sTDJ%!|7Qdo8@AJ{(z^WC*}z6dnbrI=)C|Ogd#lt{I}T< z3E=YtAc6dfPPiMye?JQ%!Ti&t>=b{P%5g*ZHS<71`QhzwDU5%p1SFgvPmj^ld|neI z&+uKQV<-{)<8{3Wz7 zOXKS+!CmAhQrIq?U-cU-Wbji7cZu&Y2|ySnU|A5ygNDnFbm zAF}zD5jc2_{}&akUFQ!|#3hIS&K-#4^N&!dtbm_H^}>bxhm^J|;;;GxlEwVIrSS6x z|JVP@XZRn{bH0>6PP1Fa_oj20<$R~zz*X=ooFQ4skD)+T6~D$87OMGe8SuJ>f0#nR zwftjS@ms0mZ#@l>oBU`B5Y_W{)Bt{q|Gp498~8RukZk0i*a_0a|KM5p(#-cc4qOX= z>Uoe>zKp(>(#F4_2G`Di$r;QAoxLeCb08af0S$un;eJ zbu-9W!7ln~CkWCz0Z$ZsLn29n;R@iA1$Q<<cmIQcmmuLweSKr&14=HD=MRq$^P zu1dBbmEwxm1iwV*>pf@kT)S18y^E0!X`Jqpnj z3*wBx-4HZU5WPguupRJH!NT`}D-&GsKx2iV>?+`u0ycd;p-M3RGMuOu9HzB?jlfw3 z$y&iK+5prE{-!jnxv`KO61aQ-_^=?g27m{G0b1RU2x=&&@lX(A!JtP4 zr7>{giC}XJydD!gj)LU4;E)1jLU4!9ygn67`|rgdXmNwcl;9-&d=Cj_ZvbvDELsH4 zK^Qn2V?QiRO9jA5=s?R!XQBKxa7TqdT>BV!7m{H@cTZ>u7w$g;_-SEKE|i@ShER$=Qh4GfNR-fh14N>Q8~36w zM)=%9Oi#QpAqDQ96|xNIOAv0Bp)XMw>Ig1Lm{y1JB?}WM9(hja`U=Q-p$}CFT@W@< z>NHiTO#_!E95bQsqVU87rYBuk|1Rb%Ls&u~;7h`q{;%%wuiO5w6N0IG#N$_~^Bm$rke70!MHopnNI`gPnC z3iC1OTf+XofNKzLTaU&@VHe$QEy7u}5@;2E{}NQU3HJm7*DgFpL8sfo4oduW2tTD2 zM5pj7UDR%2t^?qAgmRks9^vX`;Ch9tX+zZ~?CyccU17sa%zVEv!XMm#a0f-A?hAt! zKx9zJJ_yxA!qjh}b42*v8CZBI%#%aesPGX*M;-|$=&#-%3%{a|JvPTV;qg%qV?ZG#77kR9PIguwoqBSpJ+R!OZ-JWl+p?i1=H_6P_!o!Bv|CA!7xvW z!s&hq5v}|NBvdq$Hj`nZNoN4UMe8Wsep<9K2+GcgqG@#>A!1V~B1+V@6RM*{QE$R* zjHqBX`eH=~KL;*O^zTmqoE0tk6T?gp^;7U6QM8*v)k&hI6h2KBE!_)|bE5l{4^I(= zkjQz__ybti z_^N1-YH_kf`-{+cO|*%Y9M?sD2Y|~F9bODBS0tnFhUSU#{a`&`kwVe+ z=V7*3^yt5RfT*A9x=KV($wH~9h&FI#q7|nxOXVWZL$FsV^4$k`mFQ3@hFL9|N1v3f z5pi14S1ZcM2cS-*OaQqlYFY|q^`f^EVWB}(m<7@(diN0ennVRt7<;p5)5mb4MZ}?S zN~@@)3S670hmMf9i%gV%?+^tI!}(6plon>YM2QrX=@#8R43Rsc`h4JeL^gkb^on-T zv6(*6Mta%wi*9`iG9cRj63Bg#k#e7dqE%mj8xp-vk@aEGKB~!hAX+mQo{fkySHQD} zqMX0bH!6}-K=F~t?eVgiv#N* zd0fn+U#g3^=?+HZDz58;6K>)!_oDHHc-3i0x{DJj+;>vkO)qv2@t+2Wc#7@5#)!Pc z6(i8%EjG~W#YgN&F+#%wZeuiYI_%(W&hKVN@!HIBj#NQahY4O4>;LeDBbKpya*yS<+k>ao6zxOa9sba@1u%0H4rSj&B;^*7oS-SW%<^M9oXQ`h3lDPgIkWBIP zp8>cmmNa9ouZRs>fy)xRvC(%`ylfoyvc*}HGPow*Is|fEyfF_VIpPQ5FqBeV%NMt3;aP#084Y-`c*f_jcSC&Kf`OHY9skAHOT`Q0AXz5fMUUTdaS^@oD#T5+ zKdKZr{fxdUaWH)qvRYj12A68YnazOLioY&`NS!!Zi(%dryY7N#_2OSBSk)+=q7w8b z@t+P5X%@el1w$?3MWL|JDy|s?X%j#A8j|he>2o1@TO9ulNQZcF2P|}o&F&EC5*JbF zbGP`nTv)#&-bf{zJ>qQ?ap@ID9s{6H>?VThyW(_OS=|#arlUXo;)C>n7!Yrv;;Z}O zU^+WDD7Ml%c}VQYf=k2Vk3*pBp?Lm&G>(d+X|f)PzoXlGOdRQti5wS~lA#IlKH4KZ z6~`<9Hz}S&d&(*CdkbLpkVM`CW%iQMb$~la7A=FJ!xHur0FFprq5z+xWXpf)5{ZdY zlFpK|i$IP_TPc@e=lH7lw%vB&KX5Kl=1J@vgLA++4`mT-hn<|B!r#j~%3a|9xOlJ?aA_)8v8!9{@N)U$9t zP;x98B0-WXR7e{v38iU0C3)ZqK!~J@He#U?ziv1YCJ9&w$#BUTx&WsoOO3eFXCxkd z&=Mh;x(|^^$r_3bMM+|xgN10x@Ly<*k<8tI##qS$I`bMQX`-^ecnO!jn|)Tojf2hv ziJ1?{L`fE1=_JYAW=N(;@?L}L^O95!BrixZ{sNaOIZbbpG>K$0bY7G&NN2i46%8&! z@+cWvE=hW5adJg+Y%}I8OY-Xs=)5Y~c>!FuB!HHF*CcOFK+APW#cP=B97%;3Bv(@Y zB1W4hx&9U$%$Iyj&(8vhJ$-4UP}2Ad07a6fJXk1}%p3)GL-I!~Tq=fAZ?Pt+Yo7&4F9(wmi$X~{vDDQ z7A$m1J~;*pU6Msq4BRd0TmlF0NN&#ou1B)<4{&!Se|Ui0lLVi{MD|N|ehtY1$)?}Y zcwe%B!diopcW8EpBr{gQ(6Hon$`w429L&PBj!1r@XyHT2B)vCBB_5jqeaNL?sH>?)n0Y_6O1H06CyNRQfrxJzH- zLFY+nMhE&lq_gP7=P6xPk47))c?#xuOZVEqPao+m+FSTad8?q>PwGS8K=GH(?!rA0 zAl-Zcz646Q()A0HzO@waVCnxT%zH}u3dN8@q(^C|7%E*xvl}KgFaQsi76rrI)6$uA zu;Yw0I}Kcfbn{a5MM_gg0FROiXd@Oa6{nytM*7KqkXY%gdi*TnqKmx>WDNlgjp%amqN$^=s1XVUX+6@C-EONV#+!a;3W|W|b%XP61q@bRL~wDU#NHioRlL;wW_9 zkQR7@E0K27jZ!MDn}lSUbOjx3ESHW@T&hC)B?YUhr2|ytS0mlK52RK){thlqos?G# za#K2=PJ7f#lPPO?OWO52v@}SM(%sr9eeMRhCh2WTwKq$Dq!dhxbc-6QTcy<*z_m%o zszKVNZ__jKwlr%R{OpiMQ@p2B+Wiz3x}=Xj0lZtvS^>#B(#vb0x<`8PIdHwwwX`Pc zlUBV4_+9BNdXU|d&Z3X4^h*~|U}->FMd9}Q(r!BQGbr793XKn>U$g;RmF?XCmyXFwX`y>u zmQ0Z$7nx@^`dnpml#q0jt#H8wI3Y{kfML4J{-Dk4Ntw$^a2~RSl*sXveLMw#m&}z7 z;w@V{6F48)rXWcA%2<0K;wR(uVhsMWjkXX8ko`FyIs;`~dc+3FJRe|~!LsgGp!1aM zCt8As$X;3mUqWRYqW}n#W!y$%xNJrMxCog&MUW$9_Ehy4C99(+W~}U!B1})5Y&iqC zc-ic6NS>7~eFNi5kd<-Kmna*V373*&5ww_1miqRIkIqG@1EbG+vYiu7YH`ER^avGi0wl4=tBuYpOBYOqm}&ST4<AM*ATek}& zOIBnD&#ub)X-k?di>3U-HCfQx=({fa%n{D#$UdR!uw2=T8_<_0^Pi8#d>NNkWCb!7 z-PeUO36)zF$)+wqS+UHIJ_v9_c47jvM}&tUJa>;?LC$30p8MsWSIqmKa?kZqj@3-@JnTG2Qx zyFu~62eQ|{L*s~S`!j$)l*P@$phsmhXyyM%_Wm*q<*|%Y3uRAa|GbYm8v~*f zuYiLSGKbj!Je4(3sl=o#lD_gcC7Ys05Tj}E>uUz|MCEdlt<8q5~Ah* zZib&R@?R-`6f19~b!(hF;xt zm!G3x&IS4ABs8YVW9dU(Y4Xka7{f)m@2hYyLw=ARznA1WH07D{qE}(>vfP=TpI77z zn$N59Z}}kE@^!SzyCyf$_UgKvMS+(b`ARA-%ac2O0xni_GRT}olYZij^$}ieNS)V+{3=8+<@mC?) zFF!pFEdz4@1yFroe%ls?2IYs3LvmPdq_y`0d7c9#N94U44D+FUVj2vM$_wW}=Og(c zM_jlk@|_O=ACs%%;PtqCP7&Y}@_@IY?5X^%L1>whZ=qMnA;sODz}YM6Zeq|5iqW0u zJFIw2>9r$@e;i@KQL#D~oRcD10z=MQY z(wovjClwq12hKw=d=;ua6*EPU^j6%Qk1_ZtF0Y24zKZVK5b;wS{|xs071>mZ z9H4mrFoqJSSnCHZ!HS?{V ziWyXa8KGEAXE7ob$%oJvrFg9z7NQlaC(sw8n0^GfScOv@tj8&~Qyx8DA$$b`JFB=< zjK&1TslUM`DkOAgB`Lfpn3Jq%I)Y)IQ_P|RJt+!5ii4e3%%||_1qF90xKzbA-@u79 z#ktP_&rsZ?a*s=jf|KwiQ_(?h-^+^k>EkX}6v?g-$x>{kz34SXAiXrME2_#d=p4ma zZ&=7x?548QJjJ&ZN6A;D48wYX;^ME+Qm808f}s>C@+fmqtoWGXU^f&!6n!mG2&tC8 zT;aR|k`;>g9WbIw#q0y{rAqPD*HB%pI6z068Wq(P(rZ%OOGaa};ywqs7DWr~3R)F! zQ2l(HB9*=e(V_6R1?g1mS_wdxLjEm8x)lv);q@KGC)x0`M{yzzT(4qm9=JZmi}ZrN zs~Dv>A%FN#ZKc@708v{G8d~y-0U6f|3^LJIo zeGY(|^7(Ph^$BI#Ui7&u``!cYq%!jxh(UL4@z$~7#AoL06|ZsLqmc@SD6l;z}Sq_UmrkfM}JDVG(k45s?J7-a(eI%1WR ztKmeP(n6&R@yY<&tDRN8)eXr6<)vISCMpGWaQ>X~UD`sWD8G$F<9VgsCWu^6emM$w zsFiTk` zK;u>AbR|@0D=kvkyQa)>h3f0d)pX<}N11vb)0(SX=maiLxhV`>zH-h|jJ80@83mwF zxs$#xRiq60FA}Akm4dz-$~%=HCCYy(=3lD(;1?JwQ{JNlWx2AP>U1iU^~W*jN~Jf| zuvRHMyD-dZWzssY?Mf4ETW%{0x}my5$)ad)r*fJFBkEFS(wV|;WeL4P z?kEKm6zx$?ECire`S=b1eacTe(0Et5i6-lw()KV0-LLGRNBV%W<^YCrU->+pDI8QX zsYGT-Y4{UlSm{Mu#0N?i52{C$uha7Up>p{?G>$4icY*3h$}w6G zI-;6K313Im5WOaxR6bN6;;dRX9ljh@y|)a$98*cApzOG6gBhHQYBQ~#TveYI0q3Ur zh{87~RLd@bxU2do)pt_0J`8;xDwiKIJ)Ww&bO6&!_1$5N-CMQt8L0MA`BFUDSJk4& z!2DEGcLDHM3ARB?fGR%$S^`x+{sS&ZwLTJDuqyZv|tTUtztr1s49>?zZIq` zcm&Bas((I*&Ir{dilRoU{>=r6QPofpYOHDx)da_>8oZ$_UiIVqaN?}W@FL76sHV|t zK2eoN)i+71ej!M*N<_bhbE>sJW3p0Iu@ne7uUbhVwhJmdISi$$F8l_`G*#o*=)0&g z7J^GxEpvdO4AtPX5V@oZqi0X1YJ}FimsLjv5V@iAK1$3?ezI0U`X%RT=4!UY_dGOi1RdQlc@f1*(G-Yc5pnp~BW8)yfdSi&dN{ zkQ=JMDVtlOy7CC_ma10J3#?3KOHZkCRqBiAt57Y;23M&%Tn|8%Y7Y~tt5wrop{z!A zbsG9=RcTc9QKz~|b(J?&hnJ(TUUe}BeYaFs&%ucX)j|5oL!)XF{eYTOxeFlDtXe{a zt!=6cJ{VuS>VNbFkJ|u1vO{%82Ch@pw*;h16-?(sdQ^dq!1bzXC~DM)IYVE+s=x-$ z52y|t19xAwk?N%eRVMoA_mGNDk*HzSzjc_N2dY4N=!~e|ZiM7R)z#JTY*dv-Y1K!n zT-w<@R{cOBnkTB4&f}_#seYx(#&Ol!LTH&#ZKDVEQ`KL8VVIMup6T#qO7$onci?qRHS)CeI*q39M$p8fIF$*IRNLK)z1&ZrK9S|FJS1Hx{nGD zkE^3q5OGn@r-8YuTj>sQQ?o;%<%F6?wY~1@dP>NgRPUpgsfXH;YT-Q9>9lC`Qtzd5 zcyINRS3rE!d8rWbRXfnO#ZUbmJ=XlyZ!bV!fVwOnIs?_u1*0)YeW3y*SpAq@D5un3 zb3j7Wjy=GIs{f?~SD3nsYLvp&O1hIztG}beMQ7AGR45gp4r0Slq&jIY`l8hNo#3L? z*S~|#81-_B-o>idy#cdvYGW2e;?;>%j(b*ZqTqCbI+qIB6V;KFJ4;f3O27VO^?^CC zeqLQgOU4W8&8g^1RhJ3jOPZQTB^?*luTx=9x;pVwa2e_&RAz8V-PD7|O!Zf!`m(zE zJ7~G0-uep~v(&DC;8%QA{iqbmvemcfWphpKu>zi5SO1R|vpMQB-{L;YRSVmI%TxbO z$)S98=sKt_PYp~iUYUB{%W$Gx zec(G-s8Bzm+q6=B?jZWA)M*!CuUg&yKR8jNHh%=kTD9Uch}5Z9WMh~&)y*^$_3Bv^ zGP$K*|2v#$P}@=gV52&aZlWgjmlWt}R@YNNxJ5lg=bc*B_fw&zO8fYzChoU`hpwG9@2cB1LqHGmVXWIh{oeO z#^9)V=NDWfCrz;g#94FaDsV?N{#4-MqIu&w47q9&Db3=hne{2`ozQHhiY#}{Pcqm$ zsY#jxfQRPrNf`3f^ehDN(##M;nYZTHKJ@u$SmPLwD@WAbRhm3BjtJmG~dzp z-~%<^(DE)wGh2(kV9g&_VD^;eg|Faeh~`ati-u}0`omtBrj4SS;hJUiVn40nnj2Ji5vy5EdDuA3@3gjw*IcB}S)bMH z$^sxkGeH}_M2$cBnWV9&N}yy-P%rwG}GRMp?pmQJ$ni?I}#vSsQDi)!HYB*Do7S|BPf`#z?=MhnoCMI6tbv}_kh9@Z)b0Y9Q$MgT``=N1qr?YC54;H;e&50RtV`WA4nmW$N1I7^h_5!D!ghYz)nB5|Uz@lb!wk^AM6r@U?PM{oSdjMn^XLoK?)?q8Q`%)O zVeBE=)Dsv{sMdD}E2-Zgdxwr8bX_;s)yrJL`t z?FX&koNQ%3!E0yRUqYblsI5I!sk_+nKLO`z>q*zh&34BD08ZLI`EMIwrx7DQnR zB5eDqNHfy5h`w$WWn1oy##q~cH$mcTWg?JxTMd;$CfeGN^(5QXnV67d+r|TM;=FBs z9=Hp(hv&n=RNJg#IG=8NxeSsSw#~HMx@0?jB}A^+zWOJe$g)kLb?a5z5(+F`x6P)& ze2(qGvjF7U_OC!=fvxx3uvcii<9h&#Y~Q4qafz+;d1xuMZK2m^nXQx(ah0~4DKJ=N zJ3Sa&we2nnFV@+n{RVQ=_6K^l*4q}+`LRaZ-0f&=vVHp=v^3kcWWn7wTZb};wA&i! zVRhTKpSCSswwER`=x$pb&F&rB!gO$bw$IIg$X(mOMIiTVdnQ2c+h$NiY0$Q96$U+I zJEsO@#CFAH=zM5<@+6dv+IqTRe3Q1$YeA-LZ_=0U4(UARfwR|j%me43%jv^4I-*n1 zE6Y(Q*$B9k?vL4U*ID-ieFNpFZYL#?U3C5Q(s$JzqeFpiy5&^-e?qs#9=^Ei251}T zp-cT4oTn~L1!f1ZF0xDJV*Ok+K9iaPxUh{!Ew_rFCq-$PA z_lquf5lD#6@f#=$)eRIwOPFqK65|Wk;lL)IS-Kx$fIFkJ3xyMrx@YMn9HraY0urq| z;fUFd(d{e%JXSaPBH;15(m&C6R=1zlFA2I2XknJ9+y4MulJ2P-eaSk`JzU0fx((Ce zZi;Reome@q+fEOw3p&kPbc5*v`~XPP6%3*8qVDtM0Ho`@DKwX%yZ;SvnY!hCn7yp~ zcrE7aiq4%P8Ckk5Ghy$lPD}f-Y~5D+Hq15M56=LXtBVc;m#6!bww?L92Kqcef$pFk z0EN2OC!wWCxA|w_Zs_94>k^&+Mo5<-S&h?yDrrWT!&8R1YD=im2Sl@-M9Opx?3l(g1e*3dkz!Qqx&D# ziTCPE^ziS~HJC7U1G*|L9K5ePP!IT^E}HvxMfPjyRL;LD^gnYOu8x|38G za!9|f44l1wC4HO1L7)2^BoFJa(7oiSPp7ItC;cRS4b)k0N0IfT`ha{$9@D@1FSz6S zwN&xqqJNv}O+}%!)IVDcEnfO8iXD3E*Z%{!kN%}6 zxMIHgU#Q;OPyglX-~#lMRNNA%Z(0XY4Mh7qx^l#7) zJyCyv4+}|p76k*6^@FrwJg2|$Ei9zy1yoOTUOz$=kr(vM#o$u)+o(PyO|N(rsxRta zryDw5A45CS41FdYJ-?*i!-29){kb`C>9W3@B0N|0cSq2erMF>%yQ+_+@Nl+1DFV*t z=m$EXC0BotcDs3c-d3p2*I#=H_6qb`DR71QuWtZXq~H4t`ik{Fk-**1JJEL%OY|OG zkW&3=ib0g=&;AXrT>lf*8CU3swqqtL^-;6HRq1yTpjto84)7X%!D8sF)wfW>sZQUN zgvOhC5iO!_>8Dv?y+J>}0`?m9tDc2qlYVSDEHvx4(x$LQpY=SZu3bMu2VQRLbyG0Z zq3;kwvQzI^3CS+~_y$OJ>pwdKEqCL>c&>6bI6*HbXn!Ep8us6K2+rN!kD!&_eg;Aq(C00*56rg-W}< z4TV2pV7`X$=qKZ6`0*%2{0$#c_A0=zDjUiI4VHMogAIQcz``km-97+93>z-sE(kTu zrppm#=y@4jxM7tZeG!Ji04R$z%vlE#Wq79y?#3Ek9)n1n;nq9Q8E=SL11Ay;iFEHK z8bY>#OET=H$x1d9*}(caLnS3^&KnNU(&2(({>R`_4Ij}qH_hNf$}SqpUxj44;qfb& zr3?e(b%MX+?I_P`N5KWaN*A0!HAUTG;v~JBe zyxk65fq^xS5fvJyQ)=Ue;bS-Sl^6m8AX#eoFbB?87)n3Gz$y)abS%BfaD-0T)fyx; z%sRuSnHbSc!)Hk_+hB;La`;BW#}YI)85DQnV5>n#V`wwzX}8pF_|O?#r@`eNDC;s9 zPC=yG5E}%*9mDcX=<6|jyBLza24AW?>NE6S2Y1)7eKthy8NQ%;qJD#JExaBu)Mml# zeM5~DT80c~Y2!C+`0E_{9vGg|Fh>kYLx4Xtd`n*%88v*q2P1l9u%&v9CkE?gkTJt9 zAE+KT_)~al!r(zAsZR~ND6=(b_)-EbQ-_X%2+`^*brmj0!W4$AJT6+%$PtmSm8z$eYoJXaruYf&KQmKc#1HlP?=<; z(Rl|Nql|GcfkYd3e-3*w#VJ z?7DFaS;#RaB|BhzgCOE6`bF+!hV4*tqX~h}=uEV8DThkl#4jbmHD zbr{QN`Pyk5`4qS=bb{fl7ssnMTG@FtB)im^-?8w;TGkZHkP^x2!D zY2o5vlJ0@?hfTLvfjeTFwhfYwCVm-+lgX8wcQ#f31M5dk$Nnp=F`cEF?&BuUau63& zk^wHcnl$t(a5FvTLGpyj@+@%frkV+GCruluGRMO-gKCC6O{qVj(aW@te*NC2onK)n zJ|+fLEBl&e3*d{NX-zmrst)#3%pvkovT7pdZ$q)%PT{{IWr%Z=v=0i-0 z@1if%RBwQmFq5eZjp3$7s*F2r+Dr#N&zO29VLie${T4(bP47@{Fv`U7g%i=H59-ht zV+y0^M6Ag^8e@+${WF9s7H>MX0r0aXOB!@0nBE+KFNvnwc>pAtwsIhuY-*=-eCJHs z#ULrBko}m*^QPxN1i4_kJPUwS(^qt|G|hB(EpQi2W&grZy2+^&B*V1nU#Pxh+CpXD znWh`7VfM0V-ehyC&^fh}<*1a~HGJZ`w-_vH{bY z|IP=P>}jJpXlj;0^^hr<&YBFHw$YqDFxgN6=ZNV#Wmg}X)~G>7O*hNY_sG;+ilIC< zy|)Y86Vq?u;KodEQN_}@DXSaGCQN_oz)hL*4npLR*{%(S?9G|4pwGeVqJw9L&Hj{D zJz`GAZgQrhd08<4PUb)85#(%MOuOr&W_*PkuNU*sLU6~;1N4q_F^ADE%hkMy9#3v& z0afLmFn`nqW$tFThZx^U^UoA7@GzgDG9OR#G-M@adYS7Az$A;=_W(M6^*Uh~YM$0jOKLta%<|nVCG0(hw3Oe)6e0tFqn43odFElru z0j|jWFKs4^&5tOwbHi-R09Rs`(V>=7^InPwR+#&@V_GZC&xN6{%6#_)kXp0Q8`kU0 zx1_Le)4a$7k`3lxZlkZ!{Mk6*P3Dc$A<}BLrPIc3<{!#nq1`<91N8Np8~%i!edcod z-QG2`DLQ%2oUsFq{pO8SnmAzYqpw5UH%HR%Z_qq*9#jvR?Wlld*j!1^-3R7_-RK)J zbEx?0p}Cv@qh@OsEIcxMk-Lx0nY2BAV*Y$KF8`R>?hgRQ&A%*yFB9enO3OVpFQv!* zq3kHEqq%NHM_&)#yt9aqJ{vW@n|hb=+$3OQmapc7+`7XPh~bh3nzOU{-b zDZp^lvVeY0$1H=Cd_HbTHUZ~i@uu8_tED>$oSQ{KWp*bl`bALYZdtG&fRmP8FF>b< zWyeBz?P;kIV+y=1$&}jnwyX_-Y9EVX0fy;oIq)`!pXC}oul+4wO3@c&F|UOa!4@V5 z@Kcs`^yCY%WWNNFP>T3%;Q4e3vT0RSe>IBPI^ex#$%XvDUm1G&EWKFVV$3<}GES(mR z6ifUxSU7JvMyJp&SpK03sZ@({AqJghnR^LNT(r!hlP>9&_uL_pVJW6{-6hM5d(fC^ znao7vWy=p7G+wcM`4cQ;TTHa|x@Jkd3(u}wLg_?mjwPMe!nu|gL*ZGTr8*vi&bP!- z=Dfg?Xb&xgmX!4nDY8^rAyRDVq9y+g%WR7FmRVT0p}O2+-wp>WEc~U=S#7yR&evGh zP$gciWj~ej)L9k=L(5IeRt7}sEnC0Cg}Y@5p`~Agg|!tTjh2tx;9!&GZ`!~$TUNWn zLW||+T1d89wnm_@&9ZPB9BjA54ujmboO=(A9hQG6?bvDgFdt5IS&CP~&u+^D`ZJe1 zmX&QFJr?d(xYTP&vVlu|mZvWOch|DA6M%b`v#s!~-?Es3G6R-ZjTqm3%ZoGN*`Q?u z9fldQ{IDO~u;sTtsD5B+*bZeQmZp7xKeW6N2|q_Ib)@ByC6@wck1e?rd46K~XETN} zW*Mf>!;M?o=-lpvO~%5@a3i#=Hbu-wA?Cr>v`PVbEdLcj(`?!>!Um=sa!R z9ssW+t)J7TDau;@GAu+}D=7S(Wc`%Rb|zbYutKTQmos;Veh=PY6i4iu%@ho zmW$ThLvShGI-d>+WmvuGs$8<3S`3j)YYXMkFIzXzG3qPU6?B?2%gT)fxoVw7k)dqs zvMm5yvo72Oa@{)pJy^)GdLDw;xz^e(5XrN?@iE}})(wpy1=cU$#rO)Xuh6cb$olS= z5Gl6usX*?Ab>4F@TVg$v4arjLbrLDFy6%Uva_iqO0#{+JTm#8U>rZ>pS7qH!;l66? z9ZI~{SS3{2U26@X_idfE>?`1IT0?eX>guiKtI>GNx^5`|4c7bt0GctaFw|l#p+{`1 z^%q*Pv{^HQ(ARFgdlO8qjyg>ZymJ9&1$_ z8vCtkdKL^=_dkN_`_|}ahzwds0>BMfO{W1Lww7GQEIqP%Er4f_t$DOne`00QYjDiE z;5L+vTMtkiY{EK7h2{2kQ@g=A*u6vV>BDx3R&Yn`@+g<(XctOJkmGhY3&6S9$=*hv ztKILEyLPj?$U@%zyKJ{D2iz6AD)KtZ?ju?nUA2309h|>z7xFQ<9J|d_9Fc3M zmBB)u-PI?U>wLS{9|KolC(ng1g?1lN+P}!I?ML8>?UqV0%o}zSP7o=viwXju)b1Zz zT~ygc9RpWwH=j;1)!4ZogS)kMew1mdvpe+Vj;;eLs;dbHP(oRd6;d>&Xf$1;NsKWj##9rHnqo{ff85^tvb!h| zkS3^r2+{;msTQP&3P=a(AVonC=|#G9Y5zAlCnw|FJM+!l``*5H@66ms=Yb}wZsc!@q_JaXXH7R=|^fv2WnZ~TCl z5PcH|E>U)8@<4JIxTynwCjoQ%K^yGl)Zdji=5a5Ky*#oc70%h*Nb7mOy{DGIs z;O@eKFW113E31o2OWjxpXbkSGBuWx^uu^E3?8zFT7{qZ_6n#?t1nUzDeEP8Lo&%UK zE1u%seyq+D5D8=q85;dxzB(39xFGO$IE~u!1PSUdtN(uWW;r?E`yvS$1*IyT|g?qpzMd zJpj)dSZ`8E+4vgA~QHOw+G!Z1fzuhB7x$E-6vK##KKsl<1Tm9P^i zYso-VcjGLXIOOLKfN6yN7!pDvzMN)TQ@A0BT`Pv4!EEX4=nG+Qr8jIS zyO6AhvAcc%${BVR1*gN=<9~vSWIItd@ErTyk3r6}-?xTKSJ+>_2I~pz_+t2Zl|7UL z=tTC;&q0#dQF4GKvzwkrUkZDaP8nQdd(MGNWuI)sOk8JQngVx&eZU?=xykmTxOW;m zdKr94XRoC~sSI`#?RqlV6(V3}vFFL_Y<5mCL~_`>=^2^JzD`B%`Rt`J@T`D6^$Yq6 z*?mJ8SP{FO2b5yAu>?aYVLwH&`%?C~O^_^OFHc8b1-p#mgO%)g6IiHXi~d1h4V&8l zQp;x2Bd?BaP4yag*+KMa!+UINsxql(tLahMzz(EupxkHk4}&zaWfW?8!2XDW9nI`W zJ2XCIH+})V7ItYiNGn_V4M-cCbp#?E?2%cJPBuFO*1OoI!|=14T~6`O9(Gd_JnLn@ z>w~NLh;1GLkv{fNANu;)-JNJ0VBh))!yIHA(JEnxEutmdFx!%T9V6@?zC`0=b{u6p zN7>a>dNRg-GKztXvoBC`VS>%$KxC4A)fFOB?9KF-wWiqzJOTZL-Ahsa8Mc%z+$=jf z6rRno@1%juv+W1ax4^zq1a&9QZhFf&bFvt)aD;P*J_P8>DZ7F`H_r34#dqiIpM+Tt z&Rh!AJvq@&FovU?c`Exp#`%{Pg2y?w{^&cwX&-?vJ{(snh4kf&)3V-=v&$KcCppU~ z_;-ra*9IgO;IT5s;&*H42;>T>xZ&dY| z!{N}kpmI5Bv_{F}G|&?)pK~<_eFYpNs){J&oXLmRw>k44L8OS|K})z|PE|3u63$U7 z_b=rXQLd+qv*AY!rJS=q6?a_)XXYiCt>l!rfK+kbKMa&Rocb@|Sv6<#eORdBd`jE+ zTF#csz^vogIRND@$HO1_Uqns4DeMdh5W96w4%wQ=^nguZspIZAqVaGa^Wr<2q2G<@mdn7jwl z%MqLg$|KHSboi~0<40+-eojO$)CV}LZi5@-Y@(I%5GS2xaF}zIO1MTil~J(wm=jE8 zeWM%}1)0Y~h*E)dd#2p!e*Unr;E<{|o9EwpN;l5A}=UusB6iaa9E=~t= z=N^#*%!9kf8D9 z{2V)szN|=axt@+Kb$mF2njIZVqi_FLN(b$m9xl^e2!6 z?xtiwU*!(u!d@cxD8-(VxYq_jlDStN0y>4eoDLRW;|BRd-3 zAdUM38*$%3VMyXpp;$r_ch5HTJ>c%? zLE}U2PigR_g1xewQY>)^g|A1-xr`$?~xJ2-;A9`1v5IMK`1 z+GAk-+;IxD4sh9vFiV5nEB(M6;?^ajZu^%FS8~urcnkE{t}ZtG)ug z3GOeHV4mb!(5a~@uI?zzKH+BegUoPK>FnbyH;lf~GsnHILE}6(I34OvJpBQT)|q#y z9C|LiV{~xk2v5Bj3a-4%yU^#xJ4f#hcix>97~fG|Che}hc*%T#dGr2k!h{^-E$@NC zao*TQ_~OI+Z7t^7m-nJOI6qzpUFnm&WGb@t=e5uYgj2lWEr1T>Jxfo9(>zzI(GB8# za2s4O@7w197Q(xfi9v_*B5Cg%#=CnRjp4kllv9l0ok)cGS)M(82kRW~8G6#5=l$db zUoP-sV_+zX$Jh_dXkHk_bYgjLQI%yJ?-Z3c$Mce?mj5Czco;*u#Cwh|z-3-PRdOZp zes~Y$DlhPD^d<5(pMqWz@3|uwLo%1JHn>=4i z8D#L}*Wtu19*0WCGI@@)%+BI9(1RtL7e5G*T;7BG=*#0Z7r;V3?-KoF3V0G)9TxJ! zC}VV+w|WpFMZ90>bNMB_jZ;uBU<&T=6qI_a z=B=d%OAXIr9k^QFoI7Tsj#p2y!@ImxTX@~T<354Hecu1*!!M0I0bTwkUNXJrAMk`! zEz-=}eguszyij^Zw(^Xq4yldD8iHOsuW=VFbnt$lz+fluFolb{cs_LGtA{s5#caL2 zb|YM>N4!V$RP5)y|30h_@PaAXJ;;j{0A+|*IfTApUPux~JHk8n0VZUWH+=z(V?0}0 z!j1D*Qr-3hZ}QsGrX#g(KyTd>@%31<86$GpHBRx1{iYY zpS6J@7rux>xkvcnw4`$78{dJX8~=NXQM>cE`~?&b{vW5I;K|<^iN2$JGY5>wi|efbNtvGwC`tpazFpLzr8{(PgaAaaUt zeg#|rUqy$m0{J})AgB3K`d~~D|I;*J2J@fL?j?kOV-*aA@{{}EQW!tvMQ~^Mk+i-J z=YKnQR3RS%(lkw3Htl9%{jp8@n`zFY+E3V-jHKuO?hzktY9zWqrw zCi2_<2eV216;!>S%zyG8?4|Ji=&->x{=_7vAeFy^ehAn3AK!rb4SpAedDHnN^!Ux- zr&4{-ExwA*=4SE(Xu+DrcfOCtZ2r$wB9q5Yr*8r0^WS(KCH}o^R%<6;BSdSV;eA(trD8~(G+88<=aucX&b-G8Kj*bLG>?Pe7k2L(#`+(Aw+uk%@mL9 z<-fBRV}HcYq(YlM{xT_C>gOv7dVs%@!f1p1JM`Wh;-8&{*He&44{1-Aop76J2Kw*aOK(D1)e%9xh`8odEbuc^6Z$ANr1^!Yx@ZuzR zmg-8J1;0^cfQukB0+L4rXDQ0)CP+94cijaI8{ve9U^RU*S+?YqS#Z7L?OR zVU7vPDb8?Q@Qxo)P6+yiQ1B6WF2EOGftWU^eu7sI0Q#iBYBw7F1?(+w;*_9|s$l{I zpB4f$P!LYfrPBhdB|r%hG`2u8Sa8Z5eIbI{H(()DVDvS>!UW?Kkq8(3VGb@r5Tl0^ zX9b?LCy5kz&_?r|;QM-v{k%XB4$LS)t{#2Sg1Fz%7bDm}Pt#bzj&xX$6L@R{7cXE^ z^!&2m=cTwDR|G*;7(;^KzB$NMK_@MV69v~@(3d1wNdfj`!AIZGy(?hV0y9;>XQJ`C zpo*6KHw2L!DBKi$cM2kD0?wNld%B>C1z$1*?DdemB`BtpR<@vb5|TLrJ1H7-1w$0N zDiFkOhG&HW=Vjn-3wU&VsYq~W8$^l)Zb#5pDp>0W&&mXUQ-;4>5W5o4Rf4|fK<)?% z^FgWwLv)y;MiBEZ^lAlf1_Gr{a7cy5yMhL1SidLO_cR==7ku_Iu4aS4Dh8PM1-u_m_S5_BE|*b^pcto?3_j4q+sRefSwXqQVMihFkJ=7CxTEq zF+C%Qpa}V_z>lH;bAq9I7@8OG4udQR9R7lcld!@YV9vsqXM$AwlKVEu&f=UuSiBRnI8q_6NOW%&Js*{d;z zQ$nRD8Uuu<^FacI%P4JiT6pLaT$~_bLnTmxg_|iy6ej%c3G~hg2k3lNxKO?XjS)gU zZGq1Utvq4jywGYIjTeOKXP_P>-0&R~qJ>6RFw7X??~frFE3{by%!@)_WPBH25@u$@ z-eq9{EddgQZzQAfs_^B%pq?lU>qlRbFz3H#vT(!iP)`+BP;UOZkU@Eb8$$05uy<4F z{UX%UgcX!mOBYsC{3SyeM|JnNgy98f%oKiO28AqP1{ED-3*Qb#V~)^=HZi%v{49_> z;r}S!nlF4a4k87@+ueXJ6mFnE&u!t!i%=*McG3f|Sa@$axDw%VIy+Y`{Lu$4RS4_p zBde9d2oG>o!pGIHcSp#|Mq{loiHeWwga;`vdRNGxPut%U&h^8=df_QL)z={0Pi3d~ zh1*^L*C-6$1w&23QahkL5Uzh7ddwzM zdRqh(Z_&|{&^sn#9)ZYl(f8Nrh8FFhiX|VBIqkrFMX?l+@)M0wf$B+70L_HIXvcP- zoDx|Cz(Rm%=Wjp>6xC87>$K>nPM`#difHQMgB5aj})mcLGqmFJ_p=+(E}?uaY3|)Qj1ZdDoX1_i*iRnVni2PF)y*AZzf?j zPPF|!fW?b8(-P;Rh;s#fmqgtZkh(15P*(Pe=z19%6GSs~D_#}tm<5+8di61^Cy8G9 z31*W;p|?R&MH9Oqa$R(JC7^GJ8r>n1CVHJ}@6tuL=}nm-de#-tw?sK#qcKyYeFJ*g zqSkfL%MlfR0bg=OnF;926KzO?dcH{TJo*YnnR-mfZIKzhnTtekP;ptYDDEDHSt43> z3tX9~e+XQ;$SDt!6{0r|0J>5%6b+Or(f<-b?ucwRVhUz=t)Mc=ArXrfki()9DtR9f-TNHSV(hjr>Fje=m#!SeO!7e*{0LMb#k?c_Lay;jkG|6m0`%MI72iE{I;F>P#o`CscRnEH0ziud6tM zmVR#HuWDe(UHms~Wsi!BXgTR6Za4>MZ?QT63Ma%-^osNmf6Re(U$LnHUi*o+PeAgd z_#-M12oc|Y86u%#DSiAhOuUT_k%o)AC_xz^wp|Lnv*OfZ=tYW|6s0(15 zCL}|=`WuMc5+7y_dQtAJ7^cA~h(9q}Sc zwbzLMEe2OBZX1W8I`J)9FWnP=M6r^3@jCj&HHhDpK%`at8m-ye#Gld%uw7iZ4qS)$ zPx`5KitFep+$AoheN~Ux?*TqV!Y-_3QC zq>sapyJQ#bZ#^U@qtWOo*;fw*Z;2-z`Zy*jHih%YB@@jsbV6c7TVNl_i?)#TmHaaR zmrhDPqmp-ji8U?nPDx&opf5nO<~;NQB{idf4w78%hfBedZ#}_HaC?~K zssC2gk|iI5i;x7^gPfIw(?O?5iS`#@o|CM90`&_L=>QBxNeU*=7%e&V9t_1u_ERh< zRq8}sU5)-luInW26Tnw%1apS9m%oBP^gyJ(r9ZWf3||Fl{`xkvpPv0rHbxKeyK%Y zvm}jniVr1EmH?$iQb$>#R>@>D8rvkAROq!!_I&~eJ0uHKx!EZxrTlxBB;OcZx5QKq zy&lQfePH%V&QRLpkz|i6`uZdqy6gHScdkKwQ1ZeqfDK9FOyJD^lA{SpZ3oDt67g!x#H_@l2i%q1LWNAL&0mAimN~-RSd^`qAR+q?FBoy1#UK zJErH9^l%PD0;RjNVCb}TyaHnnl13K5P_XoUN+yO#XX&g-sMLK8xG?Fbv`3GSZv6m_ zXQltH1xlp!43+1dlV)nrcV6nY1okdS^M1gfW27tphDfaRrLExNq;5^H9xqMigItvU zC;{dr>4s$>3DSQ00bP|AaiE?k-Sh+WlBBP`0Fo?S+6wg)>AD!0y)I?X!|NN;t(h3@ zP3aJobfih2p;St`bd3i@GNi?{C%GlfrA$nwG=c(4SyHR_F|FCs_bAtsBi-i@y1v9w-j-hY1(HS5uV}|!EIrVO#uDk4k3dSLU(w#F zOd248OXbpTYOIiY#{#TUdYabIRni+&5qU={J%zq%saq$YYotf$%vP;5ECgJgbmJJf zyV7oY?cS6A(*?bHsWu9I4bte7XuK~KQ?92``YV-?G)c2e(Dy)ULA5c>(hAB&K9t(h zd9D_za~KBQDt#dlF11OQ7lCV+Zk<72hqT!Nq*Ge>4lY2KbSZ75yQQ-gfbNkV@B!B= z9i#NjBk3|N%=Ss!Xer$=PCU(B=w@@`LMKbHAXuk-MQ-=x&{Ei_I^SNvBgBYle!_D`hi8__r;{e*sT zv(kQwGR{fWlp3CwEa)=Ot4ug}vjlzdl3X30d(xFnweT^dS#l*?Ia+ z`^h%ZL8p_lrBvVJFY}@0>nWKdh4cbsvRW7llr^=X@3gG>1B3P)GZJ=;pgUn+LBf2l!OACTVnf2!&O|o}>LgNFO zhR!-S%M!BD_)xZ*f{iV*O_U#Nmu;YcVu$S233%Np`;3mMcFDdTfkLLSGjx##^5Gj z*@8xQ`FA=%d&o~xX3|q0MX83P@=99rd&wi{`%>O=6APdmlLzP_d0ZZ`8{7%`YxFzv zk=Itjy01L`!D1$GC{^%x1_l>2S&|`2pHHWy)QDL|>LX*$8H{<=fta zy&UkER@&ZfV;QlpWQ=Wk^Is$po`_NQpCDM zzRnbwrE(|A6qd=0Dc?~pFZvQ974mN@;dQ0_`$9BU$uCp*`;J^`1h8uPg>@h`av4?c z*UIlw2B1!^Ys8ImSH6Q*I``ynT>w`v-$D#y0sbH_Sx4{JjJ4r9=KbWtKbTz<0*=iuN`#SE>GycFs5e(+W-{}+A76b-bV_feeP zhGF_DW~idTPqFA0P);hA>;~tri1vi!DaDmscov|@qAhoz!t4?-Pbn$LxkGexU$nm?F^~l4lez{TEtQd^rj05sD@%e>$ruo`ia&Lbeei=M+Vy z&^xa%Him@@iZaUdMk$`qlPFs8+#oE(C>B$tMXVx)7Laj@WfTsJSJa+>$VEjRz0NKv zjyGa@E-OBI0Ff(-OOIeLL1E;L#;b}xCk!P~vBL)zk`%l?3^Q5LLe+06icGpOuPHWM zhC-^si_SM*R}}Tb-VH_4ZaA2(SV_UL426IazPA*sDGE@eD9r;`s)(n1w@lIY6eP

~(;z*H>1JT|DoO&N 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 z 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: 80001c4: b508 push {r3, lr} @@ -76,7 +76,7 @@ Disassembly of section .text: 80001d2: bd08 pop {r3, pc} 80001d4: 00000000 .word 0x00000000 80001d8: 200001d8 .word 0x200001d8 - 80001dc: 0800b714 .word 0x0800b714 + 80001dc: 08005630 .word 0x08005630 080001e0 : 80001e0: f001 01ff and.w r1, r1, #255 @ 0xff @@ -934,21963 +934,10408 @@ Disassembly of section .text: 8000bb4: 4770 bx lr 8000bb6: bf00 nop -08000bb8 <__aeabi_uldivmod>: - 8000bb8: b953 cbnz r3, 8000bd0 <__aeabi_uldivmod+0x18> - 8000bba: b94a cbnz r2, 8000bd0 <__aeabi_uldivmod+0x18> - 8000bbc: 2900 cmp r1, #0 - 8000bbe: bf08 it eq - 8000bc0: 2800 cmpeq r0, #0 - 8000bc2: bf1c itt ne - 8000bc4: f04f 31ff movne.w r1, #4294967295 - 8000bc8: f04f 30ff movne.w r0, #4294967295 - 8000bcc: f000 b988 b.w 8000ee0 <__aeabi_idiv0> - 8000bd0: f1ad 0c08 sub.w ip, sp, #8 - 8000bd4: e96d ce04 strd ip, lr, [sp, #-16]! - 8000bd8: f000 f806 bl 8000be8 <__udivmoddi4> - 8000bdc: f8dd e004 ldr.w lr, [sp, #4] - 8000be0: e9dd 2302 ldrd r2, r3, [sp, #8] - 8000be4: b004 add sp, #16 - 8000be6: 4770 bx lr +08000bb8 : + [65] = { 0x0C,0x1E,0x33,0x33,0x3F,0x33,0x33,0x00 }, + /* etc. */ +}; -08000be8 <__udivmoddi4>: - 8000be8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8000bec: 9d08 ldr r5, [sp, #32] - 8000bee: 468e mov lr, r1 - 8000bf0: 4604 mov r4, r0 - 8000bf2: 4688 mov r8, r1 - 8000bf4: 2b00 cmp r3, #0 - 8000bf6: d14a bne.n 8000c8e <__udivmoddi4+0xa6> - 8000bf8: 428a cmp r2, r1 - 8000bfa: 4617 mov r7, r2 - 8000bfc: d962 bls.n 8000cc4 <__udivmoddi4+0xdc> - 8000bfe: fab2 f682 clz r6, r2 - 8000c02: b14e cbz r6, 8000c18 <__udivmoddi4+0x30> - 8000c04: f1c6 0320 rsb r3, r6, #32 - 8000c08: fa01 f806 lsl.w r8, r1, r6 - 8000c0c: fa20 f303 lsr.w r3, r0, r3 - 8000c10: 40b7 lsls r7, r6 - 8000c12: ea43 0808 orr.w r8, r3, r8 - 8000c16: 40b4 lsls r4, r6 - 8000c18: ea4f 4e17 mov.w lr, r7, lsr #16 - 8000c1c: fa1f fc87 uxth.w ip, r7 - 8000c20: fbb8 f1fe udiv r1, r8, lr - 8000c24: 0c23 lsrs r3, r4, #16 - 8000c26: fb0e 8811 mls r8, lr, r1, r8 - 8000c2a: ea43 4308 orr.w r3, r3, r8, lsl #16 - 8000c2e: fb01 f20c mul.w r2, r1, ip - 8000c32: 429a cmp r2, r3 - 8000c34: d909 bls.n 8000c4a <__udivmoddi4+0x62> - 8000c36: 18fb adds r3, r7, r3 - 8000c38: f101 30ff add.w r0, r1, #4294967295 - 8000c3c: f080 80ea bcs.w 8000e14 <__udivmoddi4+0x22c> - 8000c40: 429a cmp r2, r3 - 8000c42: f240 80e7 bls.w 8000e14 <__udivmoddi4+0x22c> - 8000c46: 3902 subs r1, #2 - 8000c48: 443b add r3, r7 - 8000c4a: 1a9a subs r2, r3, r2 - 8000c4c: b2a3 uxth r3, r4 - 8000c4e: fbb2 f0fe udiv r0, r2, lr - 8000c52: fb0e 2210 mls r2, lr, r0, r2 - 8000c56: ea43 4302 orr.w r3, r3, r2, lsl #16 - 8000c5a: fb00 fc0c mul.w ip, r0, ip - 8000c5e: 459c cmp ip, r3 - 8000c60: d909 bls.n 8000c76 <__udivmoddi4+0x8e> - 8000c62: 18fb adds r3, r7, r3 - 8000c64: f100 32ff add.w r2, r0, #4294967295 - 8000c68: f080 80d6 bcs.w 8000e18 <__udivmoddi4+0x230> - 8000c6c: 459c cmp ip, r3 - 8000c6e: f240 80d3 bls.w 8000e18 <__udivmoddi4+0x230> - 8000c72: 443b add r3, r7 - 8000c74: 3802 subs r0, #2 - 8000c76: ea40 4001 orr.w r0, r0, r1, lsl #16 - 8000c7a: eba3 030c sub.w r3, r3, ip - 8000c7e: 2100 movs r1, #0 - 8000c80: b11d cbz r5, 8000c8a <__udivmoddi4+0xa2> - 8000c82: 40f3 lsrs r3, r6 - 8000c84: 2200 movs r2, #0 - 8000c86: e9c5 3200 strd r3, r2, [r5] - 8000c8a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8000c8e: 428b cmp r3, r1 - 8000c90: d905 bls.n 8000c9e <__udivmoddi4+0xb6> - 8000c92: b10d cbz r5, 8000c98 <__udivmoddi4+0xb0> - 8000c94: e9c5 0100 strd r0, r1, [r5] - 8000c98: 2100 movs r1, #0 - 8000c9a: 4608 mov r0, r1 - 8000c9c: e7f5 b.n 8000c8a <__udivmoddi4+0xa2> - 8000c9e: fab3 f183 clz r1, r3 - 8000ca2: 2900 cmp r1, #0 - 8000ca4: d146 bne.n 8000d34 <__udivmoddi4+0x14c> - 8000ca6: 4573 cmp r3, lr - 8000ca8: d302 bcc.n 8000cb0 <__udivmoddi4+0xc8> - 8000caa: 4282 cmp r2, r0 - 8000cac: f200 8105 bhi.w 8000eba <__udivmoddi4+0x2d2> - 8000cb0: 1a84 subs r4, r0, r2 - 8000cb2: eb6e 0203 sbc.w r2, lr, r3 - 8000cb6: 2001 movs r0, #1 - 8000cb8: 4690 mov r8, r2 - 8000cba: 2d00 cmp r5, #0 - 8000cbc: d0e5 beq.n 8000c8a <__udivmoddi4+0xa2> - 8000cbe: e9c5 4800 strd r4, r8, [r5] - 8000cc2: e7e2 b.n 8000c8a <__udivmoddi4+0xa2> - 8000cc4: 2a00 cmp r2, #0 - 8000cc6: f000 8090 beq.w 8000dea <__udivmoddi4+0x202> - 8000cca: fab2 f682 clz r6, r2 - 8000cce: 2e00 cmp r6, #0 - 8000cd0: f040 80a4 bne.w 8000e1c <__udivmoddi4+0x234> - 8000cd4: 1a8a subs r2, r1, r2 - 8000cd6: 0c03 lsrs r3, r0, #16 - 8000cd8: ea4f 4e17 mov.w lr, r7, lsr #16 - 8000cdc: b280 uxth r0, r0 - 8000cde: b2bc uxth r4, r7 - 8000ce0: 2101 movs r1, #1 - 8000ce2: fbb2 fcfe udiv ip, r2, lr - 8000ce6: fb0e 221c mls r2, lr, ip, r2 - 8000cea: ea43 4302 orr.w r3, r3, r2, lsl #16 - 8000cee: fb04 f20c mul.w r2, r4, ip - 8000cf2: 429a cmp r2, r3 - 8000cf4: d907 bls.n 8000d06 <__udivmoddi4+0x11e> - 8000cf6: 18fb adds r3, r7, r3 - 8000cf8: f10c 38ff add.w r8, ip, #4294967295 - 8000cfc: d202 bcs.n 8000d04 <__udivmoddi4+0x11c> - 8000cfe: 429a cmp r2, r3 - 8000d00: f200 80e0 bhi.w 8000ec4 <__udivmoddi4+0x2dc> - 8000d04: 46c4 mov ip, r8 - 8000d06: 1a9b subs r3, r3, r2 - 8000d08: fbb3 f2fe udiv r2, r3, lr - 8000d0c: fb0e 3312 mls r3, lr, r2, r3 - 8000d10: ea40 4303 orr.w r3, r0, r3, lsl #16 - 8000d14: fb02 f404 mul.w r4, r2, r4 - 8000d18: 429c cmp r4, r3 - 8000d1a: d907 bls.n 8000d2c <__udivmoddi4+0x144> - 8000d1c: 18fb adds r3, r7, r3 - 8000d1e: f102 30ff add.w r0, r2, #4294967295 - 8000d22: d202 bcs.n 8000d2a <__udivmoddi4+0x142> - 8000d24: 429c cmp r4, r3 - 8000d26: f200 80ca bhi.w 8000ebe <__udivmoddi4+0x2d6> - 8000d2a: 4602 mov r2, r0 - 8000d2c: 1b1b subs r3, r3, r4 - 8000d2e: ea42 400c orr.w r0, r2, ip, lsl #16 - 8000d32: e7a5 b.n 8000c80 <__udivmoddi4+0x98> - 8000d34: f1c1 0620 rsb r6, r1, #32 - 8000d38: 408b lsls r3, r1 - 8000d3a: fa22 f706 lsr.w r7, r2, r6 - 8000d3e: 431f orrs r7, r3 - 8000d40: fa0e f401 lsl.w r4, lr, r1 - 8000d44: fa20 f306 lsr.w r3, r0, r6 - 8000d48: fa2e fe06 lsr.w lr, lr, r6 - 8000d4c: ea4f 4917 mov.w r9, r7, lsr #16 - 8000d50: 4323 orrs r3, r4 - 8000d52: fa00 f801 lsl.w r8, r0, r1 - 8000d56: fa1f fc87 uxth.w ip, r7 - 8000d5a: fbbe f0f9 udiv r0, lr, r9 - 8000d5e: 0c1c lsrs r4, r3, #16 - 8000d60: fb09 ee10 mls lr, r9, r0, lr - 8000d64: ea44 440e orr.w r4, r4, lr, lsl #16 - 8000d68: fb00 fe0c mul.w lr, r0, ip - 8000d6c: 45a6 cmp lr, r4 - 8000d6e: fa02 f201 lsl.w r2, r2, r1 - 8000d72: d909 bls.n 8000d88 <__udivmoddi4+0x1a0> - 8000d74: 193c adds r4, r7, r4 - 8000d76: f100 3aff add.w sl, r0, #4294967295 - 8000d7a: f080 809c bcs.w 8000eb6 <__udivmoddi4+0x2ce> - 8000d7e: 45a6 cmp lr, r4 - 8000d80: f240 8099 bls.w 8000eb6 <__udivmoddi4+0x2ce> - 8000d84: 3802 subs r0, #2 - 8000d86: 443c add r4, r7 - 8000d88: eba4 040e sub.w r4, r4, lr - 8000d8c: fa1f fe83 uxth.w lr, r3 - 8000d90: fbb4 f3f9 udiv r3, r4, r9 - 8000d94: fb09 4413 mls r4, r9, r3, r4 - 8000d98: ea4e 4404 orr.w r4, lr, r4, lsl #16 - 8000d9c: fb03 fc0c mul.w ip, r3, ip - 8000da0: 45a4 cmp ip, r4 - 8000da2: d908 bls.n 8000db6 <__udivmoddi4+0x1ce> - 8000da4: 193c adds r4, r7, r4 - 8000da6: f103 3eff add.w lr, r3, #4294967295 - 8000daa: f080 8082 bcs.w 8000eb2 <__udivmoddi4+0x2ca> - 8000dae: 45a4 cmp ip, r4 - 8000db0: d97f bls.n 8000eb2 <__udivmoddi4+0x2ca> - 8000db2: 3b02 subs r3, #2 - 8000db4: 443c add r4, r7 - 8000db6: ea43 4000 orr.w r0, r3, r0, lsl #16 - 8000dba: eba4 040c sub.w r4, r4, ip - 8000dbe: fba0 ec02 umull lr, ip, r0, r2 - 8000dc2: 4564 cmp r4, ip - 8000dc4: 4673 mov r3, lr - 8000dc6: 46e1 mov r9, ip - 8000dc8: d362 bcc.n 8000e90 <__udivmoddi4+0x2a8> - 8000dca: d05f beq.n 8000e8c <__udivmoddi4+0x2a4> - 8000dcc: b15d cbz r5, 8000de6 <__udivmoddi4+0x1fe> - 8000dce: ebb8 0203 subs.w r2, r8, r3 - 8000dd2: eb64 0409 sbc.w r4, r4, r9 - 8000dd6: fa04 f606 lsl.w r6, r4, r6 - 8000dda: fa22 f301 lsr.w r3, r2, r1 - 8000dde: 431e orrs r6, r3 - 8000de0: 40cc lsrs r4, r1 - 8000de2: e9c5 6400 strd r6, r4, [r5] - 8000de6: 2100 movs r1, #0 - 8000de8: e74f b.n 8000c8a <__udivmoddi4+0xa2> - 8000dea: fbb1 fcf2 udiv ip, r1, r2 - 8000dee: 0c01 lsrs r1, r0, #16 - 8000df0: ea41 410e orr.w r1, r1, lr, lsl #16 - 8000df4: b280 uxth r0, r0 - 8000df6: ea40 4201 orr.w r2, r0, r1, lsl #16 - 8000dfa: 463b mov r3, r7 - 8000dfc: 4638 mov r0, r7 - 8000dfe: 463c mov r4, r7 - 8000e00: 46b8 mov r8, r7 - 8000e02: 46be mov lr, r7 - 8000e04: 2620 movs r6, #32 - 8000e06: fbb1 f1f7 udiv r1, r1, r7 - 8000e0a: eba2 0208 sub.w r2, r2, r8 - 8000e0e: ea41 410c orr.w r1, r1, ip, lsl #16 - 8000e12: e766 b.n 8000ce2 <__udivmoddi4+0xfa> - 8000e14: 4601 mov r1, r0 - 8000e16: e718 b.n 8000c4a <__udivmoddi4+0x62> - 8000e18: 4610 mov r0, r2 - 8000e1a: e72c b.n 8000c76 <__udivmoddi4+0x8e> - 8000e1c: f1c6 0220 rsb r2, r6, #32 - 8000e20: fa2e f302 lsr.w r3, lr, r2 - 8000e24: 40b7 lsls r7, r6 - 8000e26: 40b1 lsls r1, r6 - 8000e28: fa20 f202 lsr.w r2, r0, r2 - 8000e2c: ea4f 4e17 mov.w lr, r7, lsr #16 - 8000e30: 430a orrs r2, r1 - 8000e32: fbb3 f8fe udiv r8, r3, lr - 8000e36: b2bc uxth r4, r7 - 8000e38: fb0e 3318 mls r3, lr, r8, r3 - 8000e3c: 0c11 lsrs r1, r2, #16 - 8000e3e: ea41 4103 orr.w r1, r1, r3, lsl #16 - 8000e42: fb08 f904 mul.w r9, r8, r4 - 8000e46: 40b0 lsls r0, r6 - 8000e48: 4589 cmp r9, r1 - 8000e4a: ea4f 4310 mov.w r3, r0, lsr #16 - 8000e4e: b280 uxth r0, r0 - 8000e50: d93e bls.n 8000ed0 <__udivmoddi4+0x2e8> - 8000e52: 1879 adds r1, r7, r1 - 8000e54: f108 3cff add.w ip, r8, #4294967295 - 8000e58: d201 bcs.n 8000e5e <__udivmoddi4+0x276> - 8000e5a: 4589 cmp r9, r1 - 8000e5c: d81f bhi.n 8000e9e <__udivmoddi4+0x2b6> - 8000e5e: eba1 0109 sub.w r1, r1, r9 - 8000e62: fbb1 f9fe udiv r9, r1, lr - 8000e66: fb09 f804 mul.w r8, r9, r4 - 8000e6a: fb0e 1119 mls r1, lr, r9, r1 - 8000e6e: b292 uxth r2, r2 - 8000e70: ea42 4201 orr.w r2, r2, r1, lsl #16 - 8000e74: 4542 cmp r2, r8 - 8000e76: d229 bcs.n 8000ecc <__udivmoddi4+0x2e4> - 8000e78: 18ba adds r2, r7, r2 - 8000e7a: f109 31ff add.w r1, r9, #4294967295 - 8000e7e: d2c4 bcs.n 8000e0a <__udivmoddi4+0x222> - 8000e80: 4542 cmp r2, r8 - 8000e82: d2c2 bcs.n 8000e0a <__udivmoddi4+0x222> - 8000e84: f1a9 0102 sub.w r1, r9, #2 - 8000e88: 443a add r2, r7 - 8000e8a: e7be b.n 8000e0a <__udivmoddi4+0x222> - 8000e8c: 45f0 cmp r8, lr - 8000e8e: d29d bcs.n 8000dcc <__udivmoddi4+0x1e4> - 8000e90: ebbe 0302 subs.w r3, lr, r2 - 8000e94: eb6c 0c07 sbc.w ip, ip, r7 - 8000e98: 3801 subs r0, #1 - 8000e9a: 46e1 mov r9, ip - 8000e9c: e796 b.n 8000dcc <__udivmoddi4+0x1e4> - 8000e9e: eba7 0909 sub.w r9, r7, r9 - 8000ea2: 4449 add r1, r9 - 8000ea4: f1a8 0c02 sub.w ip, r8, #2 - 8000ea8: fbb1 f9fe udiv r9, r1, lr - 8000eac: fb09 f804 mul.w r8, r9, r4 - 8000eb0: e7db b.n 8000e6a <__udivmoddi4+0x282> - 8000eb2: 4673 mov r3, lr - 8000eb4: e77f b.n 8000db6 <__udivmoddi4+0x1ce> - 8000eb6: 4650 mov r0, sl - 8000eb8: e766 b.n 8000d88 <__udivmoddi4+0x1a0> - 8000eba: 4608 mov r0, r1 - 8000ebc: e6fd b.n 8000cba <__udivmoddi4+0xd2> - 8000ebe: 443b add r3, r7 - 8000ec0: 3a02 subs r2, #2 - 8000ec2: e733 b.n 8000d2c <__udivmoddi4+0x144> - 8000ec4: f1ac 0c02 sub.w ip, ip, #2 - 8000ec8: 443b add r3, r7 - 8000eca: e71c b.n 8000d06 <__udivmoddi4+0x11e> - 8000ecc: 4649 mov r1, r9 - 8000ece: e79c b.n 8000e0a <__udivmoddi4+0x222> - 8000ed0: eba1 0109 sub.w r1, r1, r9 - 8000ed4: 46c4 mov ip, r8 - 8000ed6: fbb1 f9fe udiv r9, r1, lr - 8000eda: fb09 f804 mul.w r8, r9, r4 - 8000ede: e7c4 b.n 8000e6a <__udivmoddi4+0x282> - -08000ee0 <__aeabi_idiv0>: - 8000ee0: 4770 bx lr - 8000ee2: bf00 nop - -08000ee4 : -/** - * @brief Converts degrees to radians. - * @param degrees Degrees. - * @return Radians. - */ -static inline float FusionDegreesToRadians(const float degrees) { - 8000ee4: b480 push {r7} - 8000ee6: b083 sub sp, #12 - 8000ee8: af00 add r7, sp, #0 - 8000eea: ed87 0a01 vstr s0, [r7, #4] - return degrees * ((float) M_PI / 180.0f); - 8000eee: edd7 7a01 vldr s15, [r7, #4] - 8000ef2: ed9f 7a05 vldr s14, [pc, #20] @ 8000f08 - 8000ef6: ee67 7a87 vmul.f32 s15, s15, s14 +// helpers pour contrôle des lignes CS/DC +static inline void GC9A01_Select(void) { + 8000bb8: b580 push {r7, lr} + 8000bba: af00 add r7, sp, #0 + HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_RESET); + 8000bbc: 2200 movs r2, #0 + 8000bbe: 2101 movs r1, #1 + 8000bc0: 4802 ldr r0, [pc, #8] @ (8000bcc ) + 8000bc2: f000 ff0f bl 80019e4 } - 8000efa: eeb0 0a67 vmov.f32 s0, s15 - 8000efe: 370c adds r7, #12 - 8000f00: 46bd mov sp, r7 - 8000f02: f85d 7b04 ldr.w r7, [sp], #4 - 8000f06: 4770 bx lr - 8000f08: 3c8efa35 .word 0x3c8efa35 + 8000bc6: bf00 nop + 8000bc8: bd80 pop {r7, pc} + 8000bca: bf00 nop + 8000bcc: 48000400 .word 0x48000400 -08000f0c : -/** - * @brief Converts radians to degrees. - * @param radians Radians. - * @return Degrees. - */ -static inline float FusionRadiansToDegrees(const float radians) { - 8000f0c: b480 push {r7} - 8000f0e: b083 sub sp, #12 - 8000f10: af00 add r7, sp, #0 - 8000f12: ed87 0a01 vstr s0, [r7, #4] - return radians * (180.0f / (float) M_PI); - 8000f16: edd7 7a01 vldr s15, [r7, #4] - 8000f1a: ed9f 7a05 vldr s14, [pc, #20] @ 8000f30 - 8000f1e: ee67 7a87 vmul.f32 s15, s15, s14 +08000bd0 : +static inline void GC9A01_Unselect(void) { + 8000bd0: b580 push {r7, lr} + 8000bd2: af00 add r7, sp, #0 + HAL_GPIO_WritePin(GC9A01_CS_GPIO_Port, GC9A01_CS_Pin, GPIO_PIN_SET); + 8000bd4: 2201 movs r2, #1 + 8000bd6: 2101 movs r1, #1 + 8000bd8: 4802 ldr r0, [pc, #8] @ (8000be4 ) + 8000bda: f000 ff03 bl 80019e4 } - 8000f22: eeb0 0a67 vmov.f32 s0, s15 - 8000f26: 370c adds r7, #12 - 8000f28: 46bd mov sp, r7 - 8000f2a: f85d 7b04 ldr.w r7, [sp], #4 - 8000f2e: 4770 bx lr - 8000f30: 42652ee0 .word 0x42652ee0 + 8000bde: bf00 nop + 8000be0: bd80 pop {r7, pc} + 8000be2: bf00 nop + 8000be4: 48000400 .word 0x48000400 -08000f34 : -/** - * @brief Returns the arc sine of the value. - * @param value Value. - * @return Arc sine of the value. - */ -static inline float FusionAsin(const float value) { - 8000f34: b580 push {r7, lr} - 8000f36: b082 sub sp, #8 - 8000f38: af00 add r7, sp, #0 - 8000f3a: ed87 0a01 vstr s0, [r7, #4] - if (value <= -1.0f) { - 8000f3e: edd7 7a01 vldr s15, [r7, #4] - 8000f42: eebf 7a00 vmov.f32 s14, #240 @ 0xbf800000 -1.0 - 8000f46: eef4 7ac7 vcmpe.f32 s15, s14 - 8000f4a: eef1 fa10 vmrs APSR_nzcv, fpscr - 8000f4e: d802 bhi.n 8000f56 - return (float) M_PI / -2.0f; - 8000f50: eddf 7a0c vldr s15, [pc, #48] @ 8000f84 - 8000f54: e011 b.n 8000f7a - } - if (value >= 1.0f) { - 8000f56: edd7 7a01 vldr s15, [r7, #4] - 8000f5a: eeb7 7a00 vmov.f32 s14, #112 @ 0x3f800000 1.0 - 8000f5e: eef4 7ac7 vcmpe.f32 s15, s14 - 8000f62: eef1 fa10 vmrs APSR_nzcv, fpscr - 8000f66: db02 blt.n 8000f6e - return (float) M_PI / 2.0f; - 8000f68: eddf 7a07 vldr s15, [pc, #28] @ 8000f88 - 8000f6c: e005 b.n 8000f7a - } - return asinf(value); - 8000f6e: ed97 0a01 vldr s0, [r7, #4] - 8000f72: f009 f89b bl 800a0ac - 8000f76: eef0 7a40 vmov.f32 s15, s0 +08000be8 : +static inline void GC9A01_DC_Command(void) { + 8000be8: b580 push {r7, lr} + 8000bea: af00 add r7, sp, #0 + HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_RESET); + 8000bec: 2200 movs r2, #0 + 8000bee: 2102 movs r1, #2 + 8000bf0: 4802 ldr r0, [pc, #8] @ (8000bfc ) + 8000bf2: f000 fef7 bl 80019e4 } - 8000f7a: eeb0 0a67 vmov.f32 s0, s15 - 8000f7e: 3708 adds r7, #8 - 8000f80: 46bd mov sp, r7 - 8000f82: bd80 pop {r7, pc} - 8000f84: bfc90fdb .word 0xbfc90fdb - 8000f88: 3fc90fdb .word 0x3fc90fdb + 8000bf6: bf00 nop + 8000bf8: bd80 pop {r7, pc} + 8000bfa: bf00 nop + 8000bfc: 48000400 .word 0x48000400 -08000f8c : - * @brief Calculates the reciprocal of the square root. - * See https://pizer.wordpress.com/2008/10/12/fast-inverse-square-root/ - * @param x Operand. - * @return Reciprocal of the square root of x. - */ -static inline float FusionFastInverseSqrt(const float x) { - 8000f8c: b480 push {r7} - 8000f8e: b085 sub sp, #20 - 8000f90: af00 add r7, sp, #0 - 8000f92: ed87 0a01 vstr s0, [r7, #4] - typedef union { - float f; - int32_t i; - } Union32; - - Union32 union32 = {.f = x}; - 8000f96: 687b ldr r3, [r7, #4] - 8000f98: 60fb str r3, [r7, #12] - union32.i = 0x5F1F1412 - (union32.i >> 1); - 8000f9a: 68fb ldr r3, [r7, #12] - 8000f9c: 105a asrs r2, r3, #1 - 8000f9e: 4b10 ldr r3, [pc, #64] @ (8000fe0 ) - 8000fa0: 1a9b subs r3, r3, r2 - 8000fa2: 60fb str r3, [r7, #12] - return union32.f * (1.69000231f - 0.714158168f * x * union32.f * union32.f); - 8000fa4: ed97 7a03 vldr s14, [r7, #12] - 8000fa8: edd7 7a01 vldr s15, [r7, #4] - 8000fac: eddf 6a0d vldr s13, [pc, #52] @ 8000fe4 - 8000fb0: ee67 6aa6 vmul.f32 s13, s15, s13 - 8000fb4: edd7 7a03 vldr s15, [r7, #12] - 8000fb8: ee66 6aa7 vmul.f32 s13, s13, s15 - 8000fbc: edd7 7a03 vldr s15, [r7, #12] - 8000fc0: ee66 7aa7 vmul.f32 s15, s13, s15 - 8000fc4: eddf 6a08 vldr s13, [pc, #32] @ 8000fe8 - 8000fc8: ee76 7ae7 vsub.f32 s15, s13, s15 - 8000fcc: ee67 7a27 vmul.f32 s15, s14, s15 +08000c00 : +static inline void GC9A01_DC_Data(void) { + 8000c00: b580 push {r7, lr} + 8000c02: af00 add r7, sp, #0 + HAL_GPIO_WritePin(GC9A01_DC_GPIO_Port, GC9A01_DC_Pin, GPIO_PIN_SET); + 8000c04: 2201 movs r2, #1 + 8000c06: 2102 movs r1, #2 + 8000c08: 4802 ldr r0, [pc, #8] @ (8000c14 ) + 8000c0a: f000 feeb bl 80019e4 } - 8000fd0: eeb0 0a67 vmov.f32 s0, s15 - 8000fd4: 3714 adds r7, #20 - 8000fd6: 46bd mov sp, r7 - 8000fd8: f85d 7b04 ldr.w r7, [sp], #4 - 8000fdc: 4770 bx lr - 8000fde: bf00 nop - 8000fe0: 5f1f1412 .word 0x5f1f1412 - 8000fe4: 3f36d312 .word 0x3f36d312 - 8000fe8: 3fd851ff .word 0x3fd851ff + 8000c0e: bf00 nop + 8000c10: bd80 pop {r7, pc} + 8000c12: bf00 nop + 8000c14: 48000400 .word 0x48000400 -08000fec : -/** - * @brief Returns true if the vector is zero. - * @param vector Vector. - * @return True if the vector is zero. - */ -static inline bool FusionVectorIsZero(const FusionVector vector) { - 8000fec: b480 push {r7} - 8000fee: b085 sub sp, #20 - 8000ff0: af00 add r7, sp, #0 - 8000ff2: eef0 6a40 vmov.f32 s13, s0 - 8000ff6: eeb0 7a60 vmov.f32 s14, s1 - 8000ffa: eef0 7a41 vmov.f32 s15, s2 - 8000ffe: edc7 6a01 vstr s13, [r7, #4] - 8001002: ed87 7a02 vstr s14, [r7, #8] - 8001006: edc7 7a03 vstr s15, [r7, #12] - return (vector.axis.x == 0.0f) && (vector.axis.y == 0.0f) && (vector.axis.z == 0.0f); - 800100a: edd7 7a01 vldr s15, [r7, #4] - 800100e: eef5 7a40 vcmp.f32 s15, #0.0 - 8001012: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001016: d10f bne.n 8001038 - 8001018: edd7 7a02 vldr s15, [r7, #8] - 800101c: eef5 7a40 vcmp.f32 s15, #0.0 - 8001020: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001024: d108 bne.n 8001038 - 8001026: edd7 7a03 vldr s15, [r7, #12] - 800102a: eef5 7a40 vcmp.f32 s15, #0.0 - 800102e: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001032: d101 bne.n 8001038 - 8001034: 2301 movs r3, #1 - 8001036: e000 b.n 800103a - 8001038: 2300 movs r3, #0 - 800103a: f003 0301 and.w r3, r3, #1 - 800103e: b2db uxtb r3, r3 +08000c18 : + +static void GC9A01_WriteCommand(uint8_t cmd) { + 8000c18: b580 push {r7, lr} + 8000c1a: b082 sub sp, #8 + 8000c1c: af00 add r7, sp, #0 + 8000c1e: 4603 mov r3, r0 + 8000c20: 71fb strb r3, [r7, #7] + GC9A01_DC_Command(); + 8000c22: f7ff ffe1 bl 8000be8 + GC9A01_Select(); + 8000c26: f7ff ffc7 bl 8000bb8 + HAL_SPI_Transmit(hspi_gc9a01, &cmd, 1, HAL_MAX_DELAY); + 8000c2a: 4b07 ldr r3, [pc, #28] @ (8000c48 ) + 8000c2c: 6818 ldr r0, [r3, #0] + 8000c2e: 1df9 adds r1, r7, #7 + 8000c30: f04f 33ff mov.w r3, #4294967295 + 8000c34: 2201 movs r2, #1 + 8000c36: f001 fd9e bl 8002776 + GC9A01_Unselect(); + 8000c3a: f7ff ffc9 bl 8000bd0 } - 8001040: 4618 mov r0, r3 - 8001042: 3714 adds r7, #20 - 8001044: 46bd mov sp, r7 - 8001046: f85d 7b04 ldr.w r7, [sp], #4 - 800104a: 4770 bx lr + 8000c3e: bf00 nop + 8000c40: 3708 adds r7, #8 + 8000c42: 46bd mov sp, r7 + 8000c44: bd80 pop {r7, pc} + 8000c46: bf00 nop + 8000c48: 200001f0 .word 0x200001f0 -0800104c : - * @brief Returns the sum of two vectors. - * @param vectorA Vector A. - * @param vectorB Vector B. - * @return Sum of two vectors. - */ -static inline FusionVector FusionVectorAdd(const FusionVector vectorA, const FusionVector vectorB) { - 800104c: b480 push {r7} - 800104e: b091 sub sp, #68 @ 0x44 - 8001050: af00 add r7, sp, #0 - 8001052: eeb0 5a40 vmov.f32 s10, s0 - 8001056: eef0 5a60 vmov.f32 s11, s1 - 800105a: eeb0 6a41 vmov.f32 s12, s2 - 800105e: eef0 6a61 vmov.f32 s13, s3 - 8001062: eeb0 7a42 vmov.f32 s14, s4 - 8001066: eef0 7a62 vmov.f32 s15, s5 - 800106a: ed87 5a07 vstr s10, [r7, #28] - 800106e: edc7 5a08 vstr s11, [r7, #32] - 8001072: ed87 6a09 vstr s12, [r7, #36] @ 0x24 - 8001076: edc7 6a04 vstr s13, [r7, #16] - 800107a: ed87 7a05 vstr s14, [r7, #20] - 800107e: edc7 7a06 vstr s15, [r7, #24] - const FusionVector result = {.axis = { - .x = vectorA.axis.x + vectorB.axis.x, - 8001082: ed97 7a07 vldr s14, [r7, #28] - 8001086: edd7 7a04 vldr s15, [r7, #16] - 800108a: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 800108e: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - .y = vectorA.axis.y + vectorB.axis.y, - 8001092: ed97 7a08 vldr s14, [r7, #32] - 8001096: edd7 7a05 vldr s15, [r7, #20] - 800109a: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 800109e: edc7 7a0b vstr s15, [r7, #44] @ 0x2c - .z = vectorA.axis.z + vectorB.axis.z, - 80010a2: ed97 7a09 vldr s14, [r7, #36] @ 0x24 - 80010a6: edd7 7a06 vldr s15, [r7, #24] - 80010aa: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 80010ae: edc7 7a0c vstr s15, [r7, #48] @ 0x30 - }}; - return result; - 80010b2: f107 0334 add.w r3, r7, #52 @ 0x34 - 80010b6: f107 0228 add.w r2, r7, #40 @ 0x28 - 80010ba: ca07 ldmia r2, {r0, r1, r2} - 80010bc: e883 0007 stmia.w r3, {r0, r1, r2} - 80010c0: 6b79 ldr r1, [r7, #52] @ 0x34 - 80010c2: 6bba ldr r2, [r7, #56] @ 0x38 - 80010c4: 6bfb ldr r3, [r7, #60] @ 0x3c - 80010c6: ee06 1a90 vmov s13, r1 - 80010ca: ee07 2a10 vmov s14, r2 - 80010ce: ee07 3a90 vmov s15, r3 +08000c4c : + +static void GC9A01_WriteData(uint8_t data) { + 8000c4c: b580 push {r7, lr} + 8000c4e: b082 sub sp, #8 + 8000c50: af00 add r7, sp, #0 + 8000c52: 4603 mov r3, r0 + 8000c54: 71fb strb r3, [r7, #7] + GC9A01_DC_Data(); + 8000c56: f7ff ffd3 bl 8000c00 + GC9A01_Select(); + 8000c5a: f7ff ffad bl 8000bb8 + HAL_SPI_Transmit(hspi_gc9a01, &data, 1, HAL_MAX_DELAY); + 8000c5e: 4b07 ldr r3, [pc, #28] @ (8000c7c ) + 8000c60: 6818 ldr r0, [r3, #0] + 8000c62: 1df9 adds r1, r7, #7 + 8000c64: f04f 33ff mov.w r3, #4294967295 + 8000c68: 2201 movs r2, #1 + 8000c6a: f001 fd84 bl 8002776 + GC9A01_Unselect(); + 8000c6e: f7ff ffaf bl 8000bd0 } - 80010d2: eeb0 0a66 vmov.f32 s0, s13 - 80010d6: eef0 0a47 vmov.f32 s1, s14 - 80010da: eeb0 1a67 vmov.f32 s2, s15 - 80010de: 3744 adds r7, #68 @ 0x44 - 80010e0: 46bd mov sp, r7 - 80010e2: f85d 7b04 ldr.w r7, [sp], #4 - 80010e6: 4770 bx lr + 8000c72: bf00 nop + 8000c74: 3708 adds r7, #8 + 8000c76: 46bd mov sp, r7 + 8000c78: bd80 pop {r7, pc} + 8000c7a: bf00 nop + 8000c7c: 200001f0 .word 0x200001f0 -080010e8 : -/** - * @brief Returns the sum of the elements. - * @param vector Vector. - * @return Sum of the elements. - */ -static inline float FusionVectorSum(const FusionVector vector) { - 80010e8: b480 push {r7} - 80010ea: b085 sub sp, #20 - 80010ec: af00 add r7, sp, #0 - 80010ee: eef0 6a40 vmov.f32 s13, s0 - 80010f2: eeb0 7a60 vmov.f32 s14, s1 - 80010f6: eef0 7a41 vmov.f32 s15, s2 - 80010fa: edc7 6a01 vstr s13, [r7, #4] - 80010fe: ed87 7a02 vstr s14, [r7, #8] - 8001102: edc7 7a03 vstr s15, [r7, #12] - return vector.axis.x + vector.axis.y + vector.axis.z; - 8001106: ed97 7a01 vldr s14, [r7, #4] - 800110a: edd7 7a02 vldr s15, [r7, #8] - 800110e: ee37 7a27 vadd.f32 s14, s14, s15 - 8001112: edd7 7a03 vldr s15, [r7, #12] - 8001116: ee77 7a27 vadd.f32 s15, s14, s15 +08000c80 : + +static void GC9A01_WriteDataBuffer(uint8_t *buffer, uint32_t len) { + 8000c80: b580 push {r7, lr} + 8000c82: b082 sub sp, #8 + 8000c84: af00 add r7, sp, #0 + 8000c86: 6078 str r0, [r7, #4] + 8000c88: 6039 str r1, [r7, #0] + if (len == 0) return; + 8000c8a: 683b ldr r3, [r7, #0] + 8000c8c: 2b00 cmp r3, #0 + 8000c8e: d00f beq.n 8000cb0 + GC9A01_DC_Data(); + 8000c90: f7ff ffb6 bl 8000c00 + GC9A01_Select(); + 8000c94: f7ff ff90 bl 8000bb8 + HAL_SPI_Transmit(hspi_gc9a01, buffer, len, HAL_MAX_DELAY); + 8000c98: 4b07 ldr r3, [pc, #28] @ (8000cb8 ) + 8000c9a: 6818 ldr r0, [r3, #0] + 8000c9c: 683b ldr r3, [r7, #0] + 8000c9e: b29a uxth r2, r3 + 8000ca0: f04f 33ff mov.w r3, #4294967295 + 8000ca4: 6879 ldr r1, [r7, #4] + 8000ca6: f001 fd66 bl 8002776 + GC9A01_Unselect(); + 8000caa: f7ff ff91 bl 8000bd0 + 8000cae: e000 b.n 8000cb2 + if (len == 0) return; + 8000cb0: bf00 nop } - 800111a: eeb0 0a67 vmov.f32 s0, s15 - 800111e: 3714 adds r7, #20 - 8001120: 46bd mov sp, r7 - 8001122: f85d 7b04 ldr.w r7, [sp], #4 - 8001126: 4770 bx lr + 8000cb2: 3708 adds r7, #8 + 8000cb4: 46bd mov sp, r7 + 8000cb6: bd80 pop {r7, pc} + 8000cb8: 200001f0 .word 0x200001f0 -08001128 : - * @brief Returns the multiplication of a vector by a scalar. - * @param vector Vector. - * @param scalar Scalar. - * @return Multiplication of a vector by a scalar. - */ -static inline FusionVector FusionVectorMultiplyScalar(const FusionVector vector, const float scalar) { - 8001128: b480 push {r7} - 800112a: b08f sub sp, #60 @ 0x3c - 800112c: af00 add r7, sp, #0 - 800112e: eef0 6a40 vmov.f32 s13, s0 - 8001132: eeb0 7a60 vmov.f32 s14, s1 - 8001136: eef0 7a41 vmov.f32 s15, s2 - 800113a: edc7 1a04 vstr s3, [r7, #16] - 800113e: edc7 6a05 vstr s13, [r7, #20] - 8001142: ed87 7a06 vstr s14, [r7, #24] - 8001146: edc7 7a07 vstr s15, [r7, #28] - const FusionVector result = {.axis = { - .x = vector.axis.x * scalar, - 800114a: ed97 7a05 vldr s14, [r7, #20] - 800114e: edd7 7a04 vldr s15, [r7, #16] - 8001152: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 8001156: edc7 7a08 vstr s15, [r7, #32] - .y = vector.axis.y * scalar, - 800115a: ed97 7a06 vldr s14, [r7, #24] - 800115e: edd7 7a04 vldr s15, [r7, #16] - 8001162: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 8001166: edc7 7a09 vstr s15, [r7, #36] @ 0x24 - .z = vector.axis.z * scalar, - 800116a: ed97 7a07 vldr s14, [r7, #28] - 800116e: edd7 7a04 vldr s15, [r7, #16] - 8001172: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 8001176: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - }}; - return result; - 800117a: f107 032c add.w r3, r7, #44 @ 0x2c - 800117e: f107 0220 add.w r2, r7, #32 - 8001182: ca07 ldmia r2, {r0, r1, r2} - 8001184: e883 0007 stmia.w r3, {r0, r1, r2} - 8001188: 6af9 ldr r1, [r7, #44] @ 0x2c - 800118a: 6b3a ldr r2, [r7, #48] @ 0x30 - 800118c: 6b7b ldr r3, [r7, #52] @ 0x34 - 800118e: ee06 1a90 vmov s13, r1 - 8001192: ee07 2a10 vmov s14, r2 - 8001196: ee07 3a90 vmov s15, r3 +08000cbc : + +static void GC9A01_SetAddressWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { + 8000cbc: b590 push {r4, r7, lr} + 8000cbe: b085 sub sp, #20 + 8000cc0: af00 add r7, sp, #0 + 8000cc2: 4604 mov r4, r0 + 8000cc4: 4608 mov r0, r1 + 8000cc6: 4611 mov r1, r2 + 8000cc8: 461a mov r2, r3 + 8000cca: 4623 mov r3, r4 + 8000ccc: 80fb strh r3, [r7, #6] + 8000cce: 4603 mov r3, r0 + 8000cd0: 80bb strh r3, [r7, #4] + 8000cd2: 460b mov r3, r1 + 8000cd4: 807b strh r3, [r7, #2] + 8000cd6: 4613 mov r3, r2 + 8000cd8: 803b strh r3, [r7, #0] + GC9A01_WriteCommand(GC9A01_CASET); + 8000cda: 202a movs r0, #42 @ 0x2a + 8000cdc: f7ff ff9c bl 8000c18 + uint8_t data_col[4] = { (uint8_t)(x0>>8), (uint8_t)(x0&0xFF), (uint8_t)(x1>>8), (uint8_t)(x1&0xFF) }; + 8000ce0: 88fb ldrh r3, [r7, #6] + 8000ce2: 0a1b lsrs r3, r3, #8 + 8000ce4: b29b uxth r3, r3 + 8000ce6: b2db uxtb r3, r3 + 8000ce8: 733b strb r3, [r7, #12] + 8000cea: 88fb ldrh r3, [r7, #6] + 8000cec: b2db uxtb r3, r3 + 8000cee: 737b strb r3, [r7, #13] + 8000cf0: 887b ldrh r3, [r7, #2] + 8000cf2: 0a1b lsrs r3, r3, #8 + 8000cf4: b29b uxth r3, r3 + 8000cf6: b2db uxtb r3, r3 + 8000cf8: 73bb strb r3, [r7, #14] + 8000cfa: 887b ldrh r3, [r7, #2] + 8000cfc: b2db uxtb r3, r3 + 8000cfe: 73fb strb r3, [r7, #15] + GC9A01_WriteDataBuffer(data_col, 4); + 8000d00: f107 030c add.w r3, r7, #12 + 8000d04: 2104 movs r1, #4 + 8000d06: 4618 mov r0, r3 + 8000d08: f7ff ffba bl 8000c80 + + GC9A01_WriteCommand(GC9A01_RASET); + 8000d0c: 202b movs r0, #43 @ 0x2b + 8000d0e: f7ff ff83 bl 8000c18 + uint8_t data_row[4] = { (uint8_t)(y0>>8), (uint8_t)(y0&0xFF), (uint8_t)(y1>>8), (uint8_t)(y1&0xFF) }; + 8000d12: 88bb ldrh r3, [r7, #4] + 8000d14: 0a1b lsrs r3, r3, #8 + 8000d16: b29b uxth r3, r3 + 8000d18: b2db uxtb r3, r3 + 8000d1a: 723b strb r3, [r7, #8] + 8000d1c: 88bb ldrh r3, [r7, #4] + 8000d1e: b2db uxtb r3, r3 + 8000d20: 727b strb r3, [r7, #9] + 8000d22: 883b ldrh r3, [r7, #0] + 8000d24: 0a1b lsrs r3, r3, #8 + 8000d26: b29b uxth r3, r3 + 8000d28: b2db uxtb r3, r3 + 8000d2a: 72bb strb r3, [r7, #10] + 8000d2c: 883b ldrh r3, [r7, #0] + 8000d2e: b2db uxtb r3, r3 + 8000d30: 72fb strb r3, [r7, #11] + GC9A01_WriteDataBuffer(data_row, 4); + 8000d32: f107 0308 add.w r3, r7, #8 + 8000d36: 2104 movs r1, #4 + 8000d38: 4618 mov r0, r3 + 8000d3a: f7ff ffa1 bl 8000c80 + + GC9A01_WriteCommand(GC9A01_RAMWR); + 8000d3e: 202c movs r0, #44 @ 0x2c + 8000d40: f7ff ff6a bl 8000c18 } - 800119a: eeb0 0a66 vmov.f32 s0, s13 - 800119e: eef0 0a47 vmov.f32 s1, s14 - 80011a2: eeb0 1a67 vmov.f32 s2, s15 - 80011a6: 373c adds r7, #60 @ 0x3c - 80011a8: 46bd mov sp, r7 - 80011aa: f85d 7b04 ldr.w r7, [sp], #4 - 80011ae: 4770 bx lr + 8000d44: bf00 nop + 8000d46: 3714 adds r7, #20 + 8000d48: 46bd mov sp, r7 + 8000d4a: bd90 pop {r4, r7, pc} -080011b0 : - * @brief Calculates the Hadamard product (element-wise multiplication). - * @param vectorA Vector A. - * @param vectorB Vector B. - * @return Hadamard product. - */ -static inline FusionVector FusionVectorHadamardProduct(const FusionVector vectorA, const FusionVector vectorB) { - 80011b0: b480 push {r7} - 80011b2: b091 sub sp, #68 @ 0x44 - 80011b4: af00 add r7, sp, #0 - 80011b6: eeb0 5a40 vmov.f32 s10, s0 - 80011ba: eef0 5a60 vmov.f32 s11, s1 - 80011be: eeb0 6a41 vmov.f32 s12, s2 - 80011c2: eef0 6a61 vmov.f32 s13, s3 - 80011c6: eeb0 7a42 vmov.f32 s14, s4 - 80011ca: eef0 7a62 vmov.f32 s15, s5 - 80011ce: ed87 5a07 vstr s10, [r7, #28] - 80011d2: edc7 5a08 vstr s11, [r7, #32] - 80011d6: ed87 6a09 vstr s12, [r7, #36] @ 0x24 - 80011da: edc7 6a04 vstr s13, [r7, #16] - 80011de: ed87 7a05 vstr s14, [r7, #20] - 80011e2: edc7 7a06 vstr s15, [r7, #24] - const FusionVector result = {.axis = { - .x = vectorA.axis.x * vectorB.axis.x, - 80011e6: ed97 7a07 vldr s14, [r7, #28] - 80011ea: edd7 7a04 vldr s15, [r7, #16] - 80011ee: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 80011f2: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - .y = vectorA.axis.y * vectorB.axis.y, - 80011f6: ed97 7a08 vldr s14, [r7, #32] - 80011fa: edd7 7a05 vldr s15, [r7, #20] - 80011fe: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 8001202: edc7 7a0b vstr s15, [r7, #44] @ 0x2c - .z = vectorA.axis.z * vectorB.axis.z, - 8001206: ed97 7a09 vldr s14, [r7, #36] @ 0x24 - 800120a: edd7 7a06 vldr s15, [r7, #24] - 800120e: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 8001212: edc7 7a0c vstr s15, [r7, #48] @ 0x30 - }}; - return result; - 8001216: f107 0334 add.w r3, r7, #52 @ 0x34 - 800121a: f107 0228 add.w r2, r7, #40 @ 0x28 - 800121e: ca07 ldmia r2, {r0, r1, r2} - 8001220: e883 0007 stmia.w r3, {r0, r1, r2} - 8001224: 6b79 ldr r1, [r7, #52] @ 0x34 - 8001226: 6bba ldr r2, [r7, #56] @ 0x38 - 8001228: 6bfb ldr r3, [r7, #60] @ 0x3c - 800122a: ee06 1a90 vmov s13, r1 - 800122e: ee07 2a10 vmov s14, r2 - 8001232: ee07 3a90 vmov s15, r3 -} - 8001236: eeb0 0a66 vmov.f32 s0, s13 - 800123a: eef0 0a47 vmov.f32 s1, s14 - 800123e: eeb0 1a67 vmov.f32 s2, s15 - 8001242: 3744 adds r7, #68 @ 0x44 - 8001244: 46bd mov sp, r7 - 8001246: f85d 7b04 ldr.w r7, [sp], #4 - 800124a: 4770 bx lr +08000d4c : -0800124c : - * @brief Returns the cross product. - * @param vectorA Vector A. - * @param vectorB Vector B. - * @return Cross product. - */ -static inline FusionVector FusionVectorCrossProduct(const FusionVector vectorA, const FusionVector vectorB) { - 800124c: b480 push {r7} - 800124e: b091 sub sp, #68 @ 0x44 - 8001250: af00 add r7, sp, #0 - 8001252: eeb0 5a40 vmov.f32 s10, s0 - 8001256: eef0 5a60 vmov.f32 s11, s1 - 800125a: eeb0 6a41 vmov.f32 s12, s2 - 800125e: eef0 6a61 vmov.f32 s13, s3 - 8001262: eeb0 7a42 vmov.f32 s14, s4 - 8001266: eef0 7a62 vmov.f32 s15, s5 - 800126a: ed87 5a07 vstr s10, [r7, #28] - 800126e: edc7 5a08 vstr s11, [r7, #32] - 8001272: ed87 6a09 vstr s12, [r7, #36] @ 0x24 - 8001276: edc7 6a04 vstr s13, [r7, #16] - 800127a: ed87 7a05 vstr s14, [r7, #20] - 800127e: edc7 7a06 vstr s15, [r7, #24] -#define A vectorA.axis -#define B vectorB.axis - const FusionVector result = {.axis = { - .x = A.y * B.z - A.z * B.y, - 8001282: ed97 7a08 vldr s14, [r7, #32] - 8001286: edd7 7a06 vldr s15, [r7, #24] - 800128a: ee27 7a27 vmul.f32 s14, s14, s15 - 800128e: edd7 6a09 vldr s13, [r7, #36] @ 0x24 - 8001292: edd7 7a05 vldr s15, [r7, #20] - 8001296: ee66 7aa7 vmul.f32 s15, s13, s15 - 800129a: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 800129e: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - .y = A.z * B.x - A.x * B.z, - 80012a2: ed97 7a09 vldr s14, [r7, #36] @ 0x24 - 80012a6: edd7 7a04 vldr s15, [r7, #16] - 80012aa: ee27 7a27 vmul.f32 s14, s14, s15 - 80012ae: edd7 6a07 vldr s13, [r7, #28] - 80012b2: edd7 7a06 vldr s15, [r7, #24] - 80012b6: ee66 7aa7 vmul.f32 s15, s13, s15 - 80012ba: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 80012be: edc7 7a0b vstr s15, [r7, #44] @ 0x2c - .z = A.x * B.y - A.y * B.x, - 80012c2: ed97 7a07 vldr s14, [r7, #28] - 80012c6: edd7 7a05 vldr s15, [r7, #20] - 80012ca: ee27 7a27 vmul.f32 s14, s14, s15 - 80012ce: edd7 6a08 vldr s13, [r7, #32] - 80012d2: edd7 7a04 vldr s15, [r7, #16] - 80012d6: ee66 7aa7 vmul.f32 s15, s13, s15 - 80012da: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector result = {.axis = { - 80012de: edc7 7a0c vstr s15, [r7, #48] @ 0x30 - }}; - return result; - 80012e2: f107 0334 add.w r3, r7, #52 @ 0x34 - 80012e6: f107 0228 add.w r2, r7, #40 @ 0x28 - 80012ea: ca07 ldmia r2, {r0, r1, r2} - 80012ec: e883 0007 stmia.w r3, {r0, r1, r2} - 80012f0: 6b79 ldr r1, [r7, #52] @ 0x34 - 80012f2: 6bba ldr r2, [r7, #56] @ 0x38 - 80012f4: 6bfb ldr r3, [r7, #60] @ 0x3c - 80012f6: ee06 1a90 vmov s13, r1 - 80012fa: ee07 2a10 vmov s14, r2 - 80012fe: ee07 3a90 vmov s15, r3 -#undef A -#undef B -} - 8001302: eeb0 0a66 vmov.f32 s0, s13 - 8001306: eef0 0a47 vmov.f32 s1, s14 - 800130a: eeb0 1a67 vmov.f32 s2, s15 - 800130e: 3744 adds r7, #68 @ 0x44 - 8001310: 46bd mov sp, r7 - 8001312: f85d 7b04 ldr.w r7, [sp], #4 - 8001316: 4770 bx lr +void GC9A01_Init(SPI_HandleTypeDef *hspi) { + 8000d4c: b580 push {r7, lr} + 8000d4e: b082 sub sp, #8 + 8000d50: af00 add r7, sp, #0 + 8000d52: 6078 str r0, [r7, #4] + hspi_gc9a01 = hspi; + 8000d54: 4a1c ldr r2, [pc, #112] @ (8000dc8 ) + 8000d56: 687b ldr r3, [r7, #4] + 8000d58: 6013 str r3, [r2, #0] + GC9A01_Reset(); + 8000d5a: f000 f837 bl 8000dcc + HAL_Delay(120); + 8000d5e: 2078 movs r0, #120 @ 0x78 + 8000d60: f000 fbbc bl 80014dc -08001318 : - * @brief Returns the dot product. - * @param vectorA Vector A. - * @param vectorB Vector B. - * @return Dot product. - */ -static inline float FusionVectorDotProduct(const FusionVector vectorA, const FusionVector vectorB) { - 8001318: b580 push {r7, lr} - 800131a: b08a sub sp, #40 @ 0x28 - 800131c: af00 add r7, sp, #0 - 800131e: eeb0 5a40 vmov.f32 s10, s0 - 8001322: eef0 5a60 vmov.f32 s11, s1 - 8001326: eeb0 6a41 vmov.f32 s12, s2 - 800132a: eef0 6a61 vmov.f32 s13, s3 - 800132e: eeb0 7a42 vmov.f32 s14, s4 - 8001332: eef0 7a62 vmov.f32 s15, s5 - 8001336: ed87 5a03 vstr s10, [r7, #12] - 800133a: edc7 5a04 vstr s11, [r7, #16] - 800133e: ed87 6a05 vstr s12, [r7, #20] - 8001342: edc7 6a00 vstr s13, [r7] - 8001346: ed87 7a01 vstr s14, [r7, #4] - 800134a: edc7 7a02 vstr s15, [r7, #8] - return FusionVectorSum(FusionVectorHadamardProduct(vectorA, vectorB)); - 800134e: ed97 5a00 vldr s10, [r7] - 8001352: edd7 5a01 vldr s11, [r7, #4] - 8001356: ed97 6a02 vldr s12, [r7, #8] - 800135a: edd7 6a03 vldr s13, [r7, #12] - 800135e: ed97 7a04 vldr s14, [r7, #16] - 8001362: edd7 7a05 vldr s15, [r7, #20] - 8001366: eef0 1a45 vmov.f32 s3, s10 - 800136a: eeb0 2a65 vmov.f32 s4, s11 - 800136e: eef0 2a46 vmov.f32 s5, s12 - 8001372: eeb0 0a66 vmov.f32 s0, s13 - 8001376: eef0 0a47 vmov.f32 s1, s14 - 800137a: eeb0 1a67 vmov.f32 s2, s15 - 800137e: f7ff ff17 bl 80011b0 - 8001382: eef0 6a40 vmov.f32 s13, s0 - 8001386: eeb0 7a60 vmov.f32 s14, s1 - 800138a: eef0 7a41 vmov.f32 s15, s2 - 800138e: edc7 6a07 vstr s13, [r7, #28] - 8001392: ed87 7a08 vstr s14, [r7, #32] - 8001396: edc7 7a09 vstr s15, [r7, #36] @ 0x24 - 800139a: edd7 6a07 vldr s13, [r7, #28] - 800139e: ed97 7a08 vldr s14, [r7, #32] - 80013a2: edd7 7a09 vldr s15, [r7, #36] @ 0x24 - 80013a6: eeb0 0a66 vmov.f32 s0, s13 - 80013aa: eef0 0a47 vmov.f32 s1, s14 - 80013ae: eeb0 1a67 vmov.f32 s2, s15 - 80013b2: f7ff fe99 bl 80010e8 - 80013b6: eef0 7a40 vmov.f32 s15, s0 -} - 80013ba: eeb0 0a67 vmov.f32 s0, s15 - 80013be: 3728 adds r7, #40 @ 0x28 - 80013c0: 46bd mov sp, r7 - 80013c2: bd80 pop {r7, pc} + GC9A01_WriteCommand(GC9A01_SWRESET); + 8000d64: 2001 movs r0, #1 + 8000d66: f7ff ff57 bl 8000c18 + HAL_Delay(150); + 8000d6a: 2096 movs r0, #150 @ 0x96 + 8000d6c: f000 fbb6 bl 80014dc -080013c4 : -/** - * @brief Returns the vector magnitude squared. - * @param vector Vector. - * @return Vector magnitude squared. - */ -static inline float FusionVectorMagnitudeSquared(const FusionVector vector) { - 80013c4: b580 push {r7, lr} - 80013c6: b088 sub sp, #32 - 80013c8: af00 add r7, sp, #0 - 80013ca: eef0 6a40 vmov.f32 s13, s0 - 80013ce: eeb0 7a60 vmov.f32 s14, s1 - 80013d2: eef0 7a41 vmov.f32 s15, s2 - 80013d6: edc7 6a01 vstr s13, [r7, #4] - 80013da: ed87 7a02 vstr s14, [r7, #8] - 80013de: edc7 7a03 vstr s15, [r7, #12] - return FusionVectorSum(FusionVectorHadamardProduct(vector, vector)); - 80013e2: ed97 5a01 vldr s10, [r7, #4] - 80013e6: edd7 5a02 vldr s11, [r7, #8] - 80013ea: ed97 6a03 vldr s12, [r7, #12] - 80013ee: edd7 6a01 vldr s13, [r7, #4] - 80013f2: ed97 7a02 vldr s14, [r7, #8] - 80013f6: edd7 7a03 vldr s15, [r7, #12] - 80013fa: eef0 1a45 vmov.f32 s3, s10 - 80013fe: eeb0 2a65 vmov.f32 s4, s11 - 8001402: eef0 2a46 vmov.f32 s5, s12 - 8001406: eeb0 0a66 vmov.f32 s0, s13 - 800140a: eef0 0a47 vmov.f32 s1, s14 - 800140e: eeb0 1a67 vmov.f32 s2, s15 - 8001412: f7ff fecd bl 80011b0 - 8001416: eef0 6a40 vmov.f32 s13, s0 - 800141a: eeb0 7a60 vmov.f32 s14, s1 - 800141e: eef0 7a41 vmov.f32 s15, s2 - 8001422: edc7 6a05 vstr s13, [r7, #20] - 8001426: ed87 7a06 vstr s14, [r7, #24] - 800142a: edc7 7a07 vstr s15, [r7, #28] - 800142e: edd7 6a05 vldr s13, [r7, #20] - 8001432: ed97 7a06 vldr s14, [r7, #24] - 8001436: edd7 7a07 vldr s15, [r7, #28] - 800143a: eeb0 0a66 vmov.f32 s0, s13 - 800143e: eef0 0a47 vmov.f32 s1, s14 - 8001442: eeb0 1a67 vmov.f32 s2, s15 - 8001446: f7ff fe4f bl 80010e8 - 800144a: eef0 7a40 vmov.f32 s15, s0 -} - 800144e: eeb0 0a67 vmov.f32 s0, s15 - 8001452: 3720 adds r7, #32 - 8001454: 46bd mov sp, r7 - 8001456: bd80 pop {r7, pc} + GC9A01_WriteCommand(GC9A01_SLPOUT); // sortie du mode veille + 8000d70: 2011 movs r0, #17 + 8000d72: f7ff ff51 bl 8000c18 + HAL_Delay(120); + 8000d76: 2078 movs r0, #120 @ 0x78 + 8000d78: f000 fbb0 bl 80014dc -08001458 : -/** - * @brief Returns the vector magnitude. - * @param vector Vector. - * @return Vector magnitude. - */ -static inline float FusionVectorMagnitude(const FusionVector vector) { - 8001458: b580 push {r7, lr} - 800145a: b084 sub sp, #16 - 800145c: af00 add r7, sp, #0 - 800145e: eef0 6a40 vmov.f32 s13, s0 - 8001462: eeb0 7a60 vmov.f32 s14, s1 - 8001466: eef0 7a41 vmov.f32 s15, s2 - 800146a: edc7 6a01 vstr s13, [r7, #4] - 800146e: ed87 7a02 vstr s14, [r7, #8] - 8001472: edc7 7a03 vstr s15, [r7, #12] - return sqrtf(FusionVectorMagnitudeSquared(vector)); - 8001476: edd7 6a01 vldr s13, [r7, #4] - 800147a: ed97 7a02 vldr s14, [r7, #8] - 800147e: edd7 7a03 vldr s15, [r7, #12] - 8001482: eeb0 0a66 vmov.f32 s0, s13 - 8001486: eef0 0a47 vmov.f32 s1, s14 - 800148a: eeb0 1a67 vmov.f32 s2, s15 - 800148e: f7ff ff99 bl 80013c4 - 8001492: eef0 7a40 vmov.f32 s15, s0 - 8001496: eeb0 0a67 vmov.f32 s0, s15 - 800149a: f008 fe8d bl 800a1b8 - 800149e: eef0 7a40 vmov.f32 s15, s0 -} - 80014a2: eeb0 0a67 vmov.f32 s0, s15 - 80014a6: 3710 adds r7, #16 - 80014a8: 46bd mov sp, r7 - 80014aa: bd80 pop {r7, pc} - -080014ac : -/** - * @brief Returns the normalised vector. - * @param vector Vector. - * @return Normalised vector. - */ -static inline FusionVector FusionVectorNormalise(const FusionVector vector) { - 80014ac: b580 push {r7, lr} - 80014ae: b08c sub sp, #48 @ 0x30 - 80014b0: af00 add r7, sp, #0 - 80014b2: eef0 6a40 vmov.f32 s13, s0 - 80014b6: eeb0 7a60 vmov.f32 s14, s1 - 80014ba: eef0 7a41 vmov.f32 s15, s2 - 80014be: edc7 6a05 vstr s13, [r7, #20] - 80014c2: ed87 7a06 vstr s14, [r7, #24] - 80014c6: edc7 7a07 vstr s15, [r7, #28] -#ifdef FUSION_USE_NORMAL_SQRT - const float magnitudeReciprocal = 1.0f / sqrtf(FusionVectorMagnitudeSquared(vector)); -#else - const float magnitudeReciprocal = FusionFastInverseSqrt(FusionVectorMagnitudeSquared(vector)); - 80014ca: edd7 6a05 vldr s13, [r7, #20] - 80014ce: ed97 7a06 vldr s14, [r7, #24] - 80014d2: edd7 7a07 vldr s15, [r7, #28] - 80014d6: eeb0 0a66 vmov.f32 s0, s13 - 80014da: eef0 0a47 vmov.f32 s1, s14 - 80014de: eeb0 1a67 vmov.f32 s2, s15 - 80014e2: f7ff ff6f bl 80013c4 - 80014e6: eef0 7a40 vmov.f32 s15, s0 - 80014ea: eeb0 0a67 vmov.f32 s0, s15 - 80014ee: f7ff fd4d bl 8000f8c - 80014f2: ed87 0a0b vstr s0, [r7, #44] @ 0x2c -#endif - return FusionVectorMultiplyScalar(vector, magnitudeReciprocal); - 80014f6: edd7 6a05 vldr s13, [r7, #20] - 80014fa: ed97 7a06 vldr s14, [r7, #24] - 80014fe: edd7 7a07 vldr s15, [r7, #28] - 8001502: edd7 1a0b vldr s3, [r7, #44] @ 0x2c - 8001506: eeb0 0a66 vmov.f32 s0, s13 - 800150a: eef0 0a47 vmov.f32 s1, s14 - 800150e: eeb0 1a67 vmov.f32 s2, s15 - 8001512: f7ff fe09 bl 8001128 - 8001516: eef0 6a40 vmov.f32 s13, s0 - 800151a: eeb0 7a60 vmov.f32 s14, s1 - 800151e: eef0 7a41 vmov.f32 s15, s2 - 8001522: edc7 6a08 vstr s13, [r7, #32] - 8001526: ed87 7a09 vstr s14, [r7, #36] @ 0x24 - 800152a: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - 800152e: 6a39 ldr r1, [r7, #32] - 8001530: 6a7a ldr r2, [r7, #36] @ 0x24 - 8001532: 6abb ldr r3, [r7, #40] @ 0x28 - 8001534: ee06 1a90 vmov s13, r1 - 8001538: ee07 2a10 vmov s14, r2 - 800153c: ee07 3a90 vmov s15, r3 -} - 8001540: eeb0 0a66 vmov.f32 s0, s13 - 8001544: eef0 0a47 vmov.f32 s1, s14 - 8001548: eeb0 1a67 vmov.f32 s2, s15 - 800154c: 3730 adds r7, #48 @ 0x30 - 800154e: 46bd mov sp, r7 - 8001550: bd80 pop {r7, pc} - -08001552 : - * @brief Returns the sum of two quaternions. - * @param quaternionA Quaternion A. - * @param quaternionB Quaternion B. - * @return Sum of two quaternions. - */ -static inline FusionQuaternion FusionQuaternionAdd(const FusionQuaternion quaternionA, const FusionQuaternion quaternionB) { - 8001552: b490 push {r4, r7} - 8001554: b094 sub sp, #80 @ 0x50 - 8001556: af00 add r7, sp, #0 - 8001558: eeb0 4a40 vmov.f32 s8, s0 - 800155c: eef0 4a60 vmov.f32 s9, s1 - 8001560: eeb0 5a41 vmov.f32 s10, s2 - 8001564: eef0 5a61 vmov.f32 s11, s3 - 8001568: eeb0 6a42 vmov.f32 s12, s4 - 800156c: eef0 6a62 vmov.f32 s13, s5 - 8001570: eeb0 7a43 vmov.f32 s14, s6 - 8001574: eef0 7a63 vmov.f32 s15, s7 - 8001578: ed87 4a08 vstr s8, [r7, #32] - 800157c: edc7 4a09 vstr s9, [r7, #36] @ 0x24 - 8001580: ed87 5a0a vstr s10, [r7, #40] @ 0x28 - 8001584: edc7 5a0b vstr s11, [r7, #44] @ 0x2c - 8001588: ed87 6a04 vstr s12, [r7, #16] - 800158c: edc7 6a05 vstr s13, [r7, #20] - 8001590: ed87 7a06 vstr s14, [r7, #24] - 8001594: edc7 7a07 vstr s15, [r7, #28] - const FusionQuaternion result = {.element = { - .w = quaternionA.element.w + quaternionB.element.w, - 8001598: ed97 7a08 vldr s14, [r7, #32] - 800159c: edd7 7a04 vldr s15, [r7, #16] - 80015a0: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80015a4: edc7 7a0c vstr s15, [r7, #48] @ 0x30 - .x = quaternionA.element.x + quaternionB.element.x, - 80015a8: ed97 7a09 vldr s14, [r7, #36] @ 0x24 - 80015ac: edd7 7a05 vldr s15, [r7, #20] - 80015b0: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80015b4: edc7 7a0d vstr s15, [r7, #52] @ 0x34 - .y = quaternionA.element.y + quaternionB.element.y, - 80015b8: ed97 7a0a vldr s14, [r7, #40] @ 0x28 - 80015bc: edd7 7a06 vldr s15, [r7, #24] - 80015c0: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80015c4: edc7 7a0e vstr s15, [r7, #56] @ 0x38 - .z = quaternionA.element.z + quaternionB.element.z, - 80015c8: ed97 7a0b vldr s14, [r7, #44] @ 0x2c - 80015cc: edd7 7a07 vldr s15, [r7, #28] - 80015d0: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80015d4: edc7 7a0f vstr s15, [r7, #60] @ 0x3c - }}; - return result; - 80015d8: f107 0440 add.w r4, r7, #64 @ 0x40 - 80015dc: f107 0330 add.w r3, r7, #48 @ 0x30 - 80015e0: cb0f ldmia r3, {r0, r1, r2, r3} - 80015e2: e884 000f stmia.w r4, {r0, r1, r2, r3} - 80015e6: 6c38 ldr r0, [r7, #64] @ 0x40 - 80015e8: 6c79 ldr r1, [r7, #68] @ 0x44 - 80015ea: 6cba ldr r2, [r7, #72] @ 0x48 - 80015ec: 6cfb ldr r3, [r7, #76] @ 0x4c - 80015ee: ee06 0a10 vmov s12, r0 - 80015f2: ee06 1a90 vmov s13, r1 - 80015f6: ee07 2a10 vmov s14, r2 - 80015fa: ee07 3a90 vmov s15, r3 -} - 80015fe: eeb0 0a46 vmov.f32 s0, s12 - 8001602: eef0 0a66 vmov.f32 s1, s13 - 8001606: eeb0 1a47 vmov.f32 s2, s14 - 800160a: eef0 1a67 vmov.f32 s3, s15 - 800160e: 3750 adds r7, #80 @ 0x50 - 8001610: 46bd mov sp, r7 - 8001612: bc90 pop {r4, r7} - 8001614: 4770 bx lr - -08001616 : - * multiplied by the vector. - * @param quaternion Quaternion. - * @param vector Vector. - * @return Multiplication of a quaternion with a vector. - */ -static inline FusionQuaternion FusionQuaternionMultiplyVector(const FusionQuaternion quaternion, const FusionVector vector) { - 8001616: b490 push {r4, r7} - 8001618: b094 sub sp, #80 @ 0x50 - 800161a: af00 add r7, sp, #0 - 800161c: eef0 4a40 vmov.f32 s9, s0 - 8001620: eeb0 5a60 vmov.f32 s10, s1 - 8001624: eef0 5a41 vmov.f32 s11, s2 - 8001628: eeb0 6a61 vmov.f32 s12, s3 - 800162c: eef0 6a42 vmov.f32 s13, s4 - 8001630: eeb0 7a62 vmov.f32 s14, s5 - 8001634: eef0 7a43 vmov.f32 s15, s6 - 8001638: edc7 4a08 vstr s9, [r7, #32] - 800163c: ed87 5a09 vstr s10, [r7, #36] @ 0x24 - 8001640: edc7 5a0a vstr s11, [r7, #40] @ 0x28 - 8001644: ed87 6a0b vstr s12, [r7, #44] @ 0x2c - 8001648: edc7 6a05 vstr s13, [r7, #20] - 800164c: ed87 7a06 vstr s14, [r7, #24] - 8001650: edc7 7a07 vstr s15, [r7, #28] -#define Q quaternion.element -#define V vector.axis - const FusionQuaternion result = {.element = { - .w = -Q.x * V.x - Q.y * V.y - Q.z * V.z, - 8001654: edd7 7a09 vldr s15, [r7, #36] @ 0x24 - 8001658: eeb1 7a67 vneg.f32 s14, s15 - 800165c: edd7 7a05 vldr s15, [r7, #20] - 8001660: ee27 7a27 vmul.f32 s14, s14, s15 - 8001664: edd7 6a0a vldr s13, [r7, #40] @ 0x28 - 8001668: edd7 7a06 vldr s15, [r7, #24] - 800166c: ee66 7aa7 vmul.f32 s15, s13, s15 - 8001670: ee37 7a67 vsub.f32 s14, s14, s15 - 8001674: edd7 6a0b vldr s13, [r7, #44] @ 0x2c - 8001678: edd7 7a07 vldr s15, [r7, #28] - 800167c: ee66 7aa7 vmul.f32 s15, s13, s15 - 8001680: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 8001684: edc7 7a0c vstr s15, [r7, #48] @ 0x30 - .x = Q.w * V.x + Q.y * V.z - Q.z * V.y, - 8001688: ed97 7a08 vldr s14, [r7, #32] - 800168c: edd7 7a05 vldr s15, [r7, #20] - 8001690: ee27 7a27 vmul.f32 s14, s14, s15 - 8001694: edd7 6a0a vldr s13, [r7, #40] @ 0x28 - 8001698: edd7 7a07 vldr s15, [r7, #28] - 800169c: ee66 7aa7 vmul.f32 s15, s13, s15 - 80016a0: ee37 7a27 vadd.f32 s14, s14, s15 - 80016a4: edd7 6a0b vldr s13, [r7, #44] @ 0x2c - 80016a8: edd7 7a06 vldr s15, [r7, #24] - 80016ac: ee66 7aa7 vmul.f32 s15, s13, s15 - 80016b0: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80016b4: edc7 7a0d vstr s15, [r7, #52] @ 0x34 - .y = Q.w * V.y - Q.x * V.z + Q.z * V.x, - 80016b8: ed97 7a08 vldr s14, [r7, #32] - 80016bc: edd7 7a06 vldr s15, [r7, #24] - 80016c0: ee27 7a27 vmul.f32 s14, s14, s15 - 80016c4: edd7 6a09 vldr s13, [r7, #36] @ 0x24 - 80016c8: edd7 7a07 vldr s15, [r7, #28] - 80016cc: ee66 7aa7 vmul.f32 s15, s13, s15 - 80016d0: ee37 7a67 vsub.f32 s14, s14, s15 - 80016d4: edd7 6a0b vldr s13, [r7, #44] @ 0x2c - 80016d8: edd7 7a05 vldr s15, [r7, #20] - 80016dc: ee66 7aa7 vmul.f32 s15, s13, s15 - 80016e0: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80016e4: edc7 7a0e vstr s15, [r7, #56] @ 0x38 - .z = Q.w * V.z + Q.x * V.y - Q.y * V.x, - 80016e8: ed97 7a08 vldr s14, [r7, #32] - 80016ec: edd7 7a07 vldr s15, [r7, #28] - 80016f0: ee27 7a27 vmul.f32 s14, s14, s15 - 80016f4: edd7 6a09 vldr s13, [r7, #36] @ 0x24 - 80016f8: edd7 7a06 vldr s15, [r7, #24] - 80016fc: ee66 7aa7 vmul.f32 s15, s13, s15 - 8001700: ee37 7a27 vadd.f32 s14, s14, s15 - 8001704: edd7 6a0a vldr s13, [r7, #40] @ 0x28 - 8001708: edd7 7a05 vldr s15, [r7, #20] - 800170c: ee66 7aa7 vmul.f32 s15, s13, s15 - 8001710: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 8001714: edc7 7a0f vstr s15, [r7, #60] @ 0x3c - }}; - return result; - 8001718: f107 0440 add.w r4, r7, #64 @ 0x40 - 800171c: f107 0330 add.w r3, r7, #48 @ 0x30 - 8001720: cb0f ldmia r3, {r0, r1, r2, r3} - 8001722: e884 000f stmia.w r4, {r0, r1, r2, r3} - 8001726: 6c38 ldr r0, [r7, #64] @ 0x40 - 8001728: 6c79 ldr r1, [r7, #68] @ 0x44 - 800172a: 6cba ldr r2, [r7, #72] @ 0x48 - 800172c: 6cfb ldr r3, [r7, #76] @ 0x4c - 800172e: ee06 0a10 vmov s12, r0 - 8001732: ee06 1a90 vmov s13, r1 - 8001736: ee07 2a10 vmov s14, r2 - 800173a: ee07 3a90 vmov s15, r3 -#undef Q -#undef V -} - 800173e: eeb0 0a46 vmov.f32 s0, s12 - 8001742: eef0 0a66 vmov.f32 s1, s13 - 8001746: eeb0 1a47 vmov.f32 s2, s14 - 800174a: eef0 1a67 vmov.f32 s3, s15 - 800174e: 3750 adds r7, #80 @ 0x50 - 8001750: 46bd mov sp, r7 - 8001752: bc90 pop {r4, r7} - 8001754: 4770 bx lr - -08001756 : -/** - * @brief Returns the normalised quaternion. - * @param quaternion Quaternion. - * @return Normalised quaternion. - */ -static inline FusionQuaternion FusionQuaternionNormalise(const FusionQuaternion quaternion) { - 8001756: b590 push {r4, r7, lr} - 8001758: b093 sub sp, #76 @ 0x4c - 800175a: af00 add r7, sp, #0 - 800175c: eeb0 6a40 vmov.f32 s12, s0 - 8001760: eef0 6a60 vmov.f32 s13, s1 - 8001764: eeb0 7a41 vmov.f32 s14, s2 - 8001768: eef0 7a61 vmov.f32 s15, s3 - 800176c: ed87 6a04 vstr s12, [r7, #16] - 8001770: edc7 6a05 vstr s13, [r7, #20] - 8001774: ed87 7a06 vstr s14, [r7, #24] - 8001778: edc7 7a07 vstr s15, [r7, #28] -#define Q quaternion.element -#ifdef FUSION_USE_NORMAL_SQRT - const float magnitudeReciprocal = 1.0f / sqrtf(Q.w * Q.w + Q.x * Q.x + Q.y * Q.y + Q.z * Q.z); -#else - const float magnitudeReciprocal = FusionFastInverseSqrt(Q.w * Q.w + Q.x * Q.x + Q.y * Q.y + Q.z * Q.z); - 800177c: ed97 7a04 vldr s14, [r7, #16] - 8001780: edd7 7a04 vldr s15, [r7, #16] - 8001784: ee27 7a27 vmul.f32 s14, s14, s15 - 8001788: edd7 6a05 vldr s13, [r7, #20] - 800178c: edd7 7a05 vldr s15, [r7, #20] - 8001790: ee66 7aa7 vmul.f32 s15, s13, s15 - 8001794: ee37 7a27 vadd.f32 s14, s14, s15 - 8001798: edd7 6a06 vldr s13, [r7, #24] - 800179c: edd7 7a06 vldr s15, [r7, #24] - 80017a0: ee66 7aa7 vmul.f32 s15, s13, s15 - 80017a4: ee37 7a27 vadd.f32 s14, s14, s15 - 80017a8: edd7 6a07 vldr s13, [r7, #28] - 80017ac: edd7 7a07 vldr s15, [r7, #28] - 80017b0: ee66 7aa7 vmul.f32 s15, s13, s15 - 80017b4: ee77 7a27 vadd.f32 s15, s14, s15 - 80017b8: eeb0 0a67 vmov.f32 s0, s15 - 80017bc: f7ff fbe6 bl 8000f8c - 80017c0: ed87 0a11 vstr s0, [r7, #68] @ 0x44 -#endif - const FusionQuaternion result = {.element = { - .w = Q.w * magnitudeReciprocal, - 80017c4: ed97 7a04 vldr s14, [r7, #16] - 80017c8: edd7 7a11 vldr s15, [r7, #68] @ 0x44 - 80017cc: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80017d0: edc7 7a09 vstr s15, [r7, #36] @ 0x24 - .x = Q.x * magnitudeReciprocal, - 80017d4: ed97 7a05 vldr s14, [r7, #20] - 80017d8: edd7 7a11 vldr s15, [r7, #68] @ 0x44 - 80017dc: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80017e0: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - .y = Q.y * magnitudeReciprocal, - 80017e4: ed97 7a06 vldr s14, [r7, #24] - 80017e8: edd7 7a11 vldr s15, [r7, #68] @ 0x44 - 80017ec: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 80017f0: edc7 7a0b vstr s15, [r7, #44] @ 0x2c - .z = Q.z * magnitudeReciprocal, - 80017f4: ed97 7a07 vldr s14, [r7, #28] - 80017f8: edd7 7a11 vldr s15, [r7, #68] @ 0x44 - 80017fc: ee67 7a27 vmul.f32 s15, s14, s15 - const FusionQuaternion result = {.element = { - 8001800: edc7 7a0c vstr s15, [r7, #48] @ 0x30 - }}; - return result; - 8001804: f107 0434 add.w r4, r7, #52 @ 0x34 - 8001808: f107 0324 add.w r3, r7, #36 @ 0x24 - 800180c: cb0f ldmia r3, {r0, r1, r2, r3} - 800180e: e884 000f stmia.w r4, {r0, r1, r2, r3} - 8001812: 6b78 ldr r0, [r7, #52] @ 0x34 - 8001814: 6bb9 ldr r1, [r7, #56] @ 0x38 - 8001816: 6bfa ldr r2, [r7, #60] @ 0x3c - 8001818: 6c3b ldr r3, [r7, #64] @ 0x40 - 800181a: ee06 0a10 vmov s12, r0 - 800181e: ee06 1a90 vmov s13, r1 - 8001822: ee07 2a10 vmov s14, r2 - 8001826: ee07 3a90 vmov s15, r3 -#undef Q -} - 800182a: eeb0 0a46 vmov.f32 s0, s12 - 800182e: eef0 0a66 vmov.f32 s1, s13 - 8001832: eeb0 1a47 vmov.f32 s2, s14 - 8001836: eef0 1a67 vmov.f32 s3, s15 - 800183a: 374c adds r7, #76 @ 0x4c - 800183c: 46bd mov sp, r7 - 800183e: bd90 pop {r4, r7, pc} - -08001840 : - -/** - * @brief Initialises the AHRS algorithm² structure. - * @param ahrs AHRS algorithm structure. - */ -void FusionAhrsInitialise(FusionAhrs *const ahrs) { - 8001840: b5b0 push {r4, r5, r7, lr} - 8001842: b088 sub sp, #32 - 8001844: af00 add r7, sp, #0 - 8001846: 6078 str r0, [r7, #4] - const FusionAhrsSettings settings = { - 8001848: 4b0b ldr r3, [pc, #44] @ (8001878 ) - 800184a: f107 0408 add.w r4, r7, #8 - 800184e: 461d mov r5, r3 - 8001850: cd0f ldmia r5!, {r0, r1, r2, r3} - 8001852: c40f stmia r4!, {r0, r1, r2, r3} - 8001854: e895 0003 ldmia.w r5, {r0, r1} - 8001858: e884 0003 stmia.w r4, {r0, r1} - .gyroscopeRange = 0.0f, - .accelerationRejection = 90.0f, - .magneticRejection = 90.0f, - .recoveryTriggerPeriod = 0, - }; - FusionAhrsSetSettings(ahrs, &settings); - 800185c: f107 0308 add.w r3, r7, #8 - 8001860: 4619 mov r1, r3 - 8001862: 6878 ldr r0, [r7, #4] - 8001864: f000 f86e bl 8001944 - FusionAhrsReset(ahrs); - 8001868: 6878 ldr r0, [r7, #4] - 800186a: f000 f807 bl 800187c -} - 800186e: bf00 nop - 8001870: 3720 adds r7, #32 - 8001872: 46bd mov sp, r7 - 8001874: bdb0 pop {r4, r5, r7, pc} - 8001876: bf00 nop - 8001878: 0800b730 .word 0x0800b730 - -0800187c : -/** - * @brief Resets the AHRS algorithm. This is equivalent to reinitialising the - * algorithm while maintaining the current settings. - * @param ahrs AHRS algorithm structure. - */ -void FusionAhrsReset(FusionAhrs *const ahrs) { - 800187c: b480 push {r7} - 800187e: b091 sub sp, #68 @ 0x44 - 8001880: af00 add r7, sp, #0 - 8001882: 6078 str r0, [r7, #4] - ahrs->quaternion = FUSION_IDENTITY_QUATERNION; - 8001884: 687b ldr r3, [r7, #4] - 8001886: f04f 527e mov.w r2, #1065353216 @ 0x3f800000 - 800188a: 619a str r2, [r3, #24] - 800188c: 687b ldr r3, [r7, #4] - 800188e: f04f 0200 mov.w r2, #0 - 8001892: 61da str r2, [r3, #28] - 8001894: 687b ldr r3, [r7, #4] - 8001896: f04f 0200 mov.w r2, #0 - 800189a: 621a str r2, [r3, #32] - 800189c: 687b ldr r3, [r7, #4] - 800189e: f04f 0200 mov.w r2, #0 - 80018a2: 625a str r2, [r3, #36] @ 0x24 - ahrs->accelerometer = FUSION_VECTOR_ZERO; - 80018a4: 687b ldr r3, [r7, #4] - 80018a6: f04f 0200 mov.w r2, #0 - 80018aa: 629a str r2, [r3, #40] @ 0x28 - 80018ac: 687b ldr r3, [r7, #4] - 80018ae: f04f 0200 mov.w r2, #0 - 80018b2: 62da str r2, [r3, #44] @ 0x2c - 80018b4: 687b ldr r3, [r7, #4] - 80018b6: f04f 0200 mov.w r2, #0 - 80018ba: 631a str r2, [r3, #48] @ 0x30 - ahrs->initialising = true; - 80018bc: 687b ldr r3, [r7, #4] - 80018be: 2201 movs r2, #1 - 80018c0: f883 2034 strb.w r2, [r3, #52] @ 0x34 - ahrs->rampedGain = INITIAL_GAIN; - 80018c4: 687b ldr r3, [r7, #4] - 80018c6: 4a1e ldr r2, [pc, #120] @ (8001940 ) - 80018c8: 639a str r2, [r3, #56] @ 0x38 - ahrs->angularRateRecovery = false; - 80018ca: 687b ldr r3, [r7, #4] - 80018cc: 2200 movs r2, #0 - 80018ce: f883 2040 strb.w r2, [r3, #64] @ 0x40 - ahrs->halfAccelerometerFeedback = FUSION_VECTOR_ZERO; - 80018d2: 687b ldr r3, [r7, #4] - 80018d4: f04f 0200 mov.w r2, #0 - 80018d8: 645a str r2, [r3, #68] @ 0x44 - 80018da: 687b ldr r3, [r7, #4] - 80018dc: f04f 0200 mov.w r2, #0 - 80018e0: 649a str r2, [r3, #72] @ 0x48 - 80018e2: 687b ldr r3, [r7, #4] - 80018e4: f04f 0200 mov.w r2, #0 - 80018e8: 64da str r2, [r3, #76] @ 0x4c - ahrs->halfMagnetometerFeedback = FUSION_VECTOR_ZERO; - 80018ea: 687b ldr r3, [r7, #4] - 80018ec: f04f 0200 mov.w r2, #0 - 80018f0: 651a str r2, [r3, #80] @ 0x50 - 80018f2: 687b ldr r3, [r7, #4] - 80018f4: f04f 0200 mov.w r2, #0 - 80018f8: 655a str r2, [r3, #84] @ 0x54 - 80018fa: 687b ldr r3, [r7, #4] - 80018fc: f04f 0200 mov.w r2, #0 - 8001900: 659a str r2, [r3, #88] @ 0x58 - ahrs->accelerometerIgnored = false; - 8001902: 687b ldr r3, [r7, #4] - 8001904: 2200 movs r2, #0 - 8001906: f883 205c strb.w r2, [r3, #92] @ 0x5c - ahrs->accelerationRecoveryTrigger = 0; - 800190a: 687b ldr r3, [r7, #4] - 800190c: 2200 movs r2, #0 - 800190e: 661a str r2, [r3, #96] @ 0x60 - ahrs->accelerationRecoveryTimeout = ahrs->settings.recoveryTriggerPeriod; - 8001910: 687b ldr r3, [r7, #4] - 8001912: 695b ldr r3, [r3, #20] - 8001914: 461a mov r2, r3 - 8001916: 687b ldr r3, [r7, #4] - 8001918: 665a str r2, [r3, #100] @ 0x64 - ahrs->magnetometerIgnored = false; - 800191a: 687b ldr r3, [r7, #4] - 800191c: 2200 movs r2, #0 - 800191e: f883 2068 strb.w r2, [r3, #104] @ 0x68 - ahrs->magneticRecoveryTrigger = 0; - 8001922: 687b ldr r3, [r7, #4] - 8001924: 2200 movs r2, #0 - 8001926: 66da str r2, [r3, #108] @ 0x6c - ahrs->magneticRecoveryTimeout = ahrs->settings.recoveryTriggerPeriod; - 8001928: 687b ldr r3, [r7, #4] - 800192a: 695b ldr r3, [r3, #20] - 800192c: 461a mov r2, r3 - 800192e: 687b ldr r3, [r7, #4] - 8001930: 671a str r2, [r3, #112] @ 0x70 -} - 8001932: bf00 nop - 8001934: 3744 adds r7, #68 @ 0x44 - 8001936: 46bd mov sp, r7 - 8001938: f85d 7b04 ldr.w r7, [sp], #4 - 800193c: 4770 bx lr - 800193e: bf00 nop - 8001940: 41200000 .word 0x41200000 - -08001944 : -/** - * @brief Sets the AHRS algorithm settings. - * @param ahrs AHRS algorithm structure. - * @param settings Settings. - */ -void FusionAhrsSetSettings(FusionAhrs *const ahrs, const FusionAhrsSettings *const settings) { - 8001944: b580 push {r7, lr} - 8001946: b082 sub sp, #8 - 8001948: af00 add r7, sp, #0 - 800194a: 6078 str r0, [r7, #4] - 800194c: 6039 str r1, [r7, #0] - ahrs->settings.convention = settings->convention; - 800194e: 683b ldr r3, [r7, #0] - 8001950: 781a ldrb r2, [r3, #0] - 8001952: 687b ldr r3, [r7, #4] - 8001954: 701a strb r2, [r3, #0] - ahrs->settings.gain = settings->gain; - 8001956: 683b ldr r3, [r7, #0] - 8001958: 685a ldr r2, [r3, #4] - 800195a: 687b ldr r3, [r7, #4] - 800195c: 605a str r2, [r3, #4] - ahrs->settings.gyroscopeRange = settings->gyroscopeRange == 0.0f ? FLT_MAX : 0.98f * settings->gyroscopeRange; - 800195e: 683b ldr r3, [r7, #0] - 8001960: edd3 7a02 vldr s15, [r3, #8] - 8001964: eef5 7a40 vcmp.f32 s15, #0.0 - 8001968: eef1 fa10 vmrs APSR_nzcv, fpscr - 800196c: d007 beq.n 800197e - 800196e: 683b ldr r3, [r7, #0] - 8001970: edd3 7a02 vldr s15, [r3, #8] - 8001974: ed9f 7a4c vldr s14, [pc, #304] @ 8001aa8 - 8001978: ee67 7a87 vmul.f32 s15, s15, s14 - 800197c: e001 b.n 8001982 - 800197e: eddf 7a4b vldr s15, [pc, #300] @ 8001aac - 8001982: 687b ldr r3, [r7, #4] - 8001984: edc3 7a02 vstr s15, [r3, #8] - ahrs->settings.accelerationRejection = settings->accelerationRejection == 0.0f ? FLT_MAX : powf(0.5f * sinf(FusionDegreesToRadians(settings->accelerationRejection)), 2); - 8001988: 683b ldr r3, [r7, #0] - 800198a: edd3 7a03 vldr s15, [r3, #12] - 800198e: eef5 7a40 vcmp.f32 s15, #0.0 - 8001992: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001996: d01b beq.n 80019d0 - 8001998: 683b ldr r3, [r7, #0] - 800199a: edd3 7a03 vldr s15, [r3, #12] - 800199e: eeb0 0a67 vmov.f32 s0, s15 - 80019a2: f7ff fa9f bl 8000ee4 - 80019a6: eef0 7a40 vmov.f32 s15, s0 - 80019aa: eeb0 0a67 vmov.f32 s0, s15 - 80019ae: f008 fc29 bl 800a204 - 80019b2: eef0 7a40 vmov.f32 s15, s0 - 80019b6: eeb6 7a00 vmov.f32 s14, #96 @ 0x3f000000 0.5 - 80019ba: ee67 7a87 vmul.f32 s15, s15, s14 - 80019be: eef0 0a00 vmov.f32 s1, #0 @ 0x40000000 2.0 - 80019c2: eeb0 0a67 vmov.f32 s0, s15 - 80019c6: f008 fb9f bl 800a108 - 80019ca: eef0 7a40 vmov.f32 s15, s0 - 80019ce: e001 b.n 80019d4 - 80019d0: eddf 7a36 vldr s15, [pc, #216] @ 8001aac - 80019d4: 687b ldr r3, [r7, #4] - 80019d6: edc3 7a03 vstr s15, [r3, #12] - ahrs->settings.magneticRejection = settings->magneticRejection == 0.0f ? FLT_MAX : powf(0.5f * sinf(FusionDegreesToRadians(settings->magneticRejection)), 2); - 80019da: 683b ldr r3, [r7, #0] - 80019dc: edd3 7a04 vldr s15, [r3, #16] - 80019e0: eef5 7a40 vcmp.f32 s15, #0.0 - 80019e4: eef1 fa10 vmrs APSR_nzcv, fpscr - 80019e8: d01b beq.n 8001a22 - 80019ea: 683b ldr r3, [r7, #0] - 80019ec: edd3 7a04 vldr s15, [r3, #16] - 80019f0: eeb0 0a67 vmov.f32 s0, s15 - 80019f4: f7ff fa76 bl 8000ee4 - 80019f8: eef0 7a40 vmov.f32 s15, s0 - 80019fc: eeb0 0a67 vmov.f32 s0, s15 - 8001a00: f008 fc00 bl 800a204 - 8001a04: eef0 7a40 vmov.f32 s15, s0 - 8001a08: eeb6 7a00 vmov.f32 s14, #96 @ 0x3f000000 0.5 - 8001a0c: ee67 7a87 vmul.f32 s15, s15, s14 - 8001a10: eef0 0a00 vmov.f32 s1, #0 @ 0x40000000 2.0 - 8001a14: eeb0 0a67 vmov.f32 s0, s15 - 8001a18: f008 fb76 bl 800a108 - 8001a1c: eef0 7a40 vmov.f32 s15, s0 - 8001a20: e001 b.n 8001a26 - 8001a22: eddf 7a22 vldr s15, [pc, #136] @ 8001aac - 8001a26: 687b ldr r3, [r7, #4] - 8001a28: edc3 7a04 vstr s15, [r3, #16] - ahrs->settings.recoveryTriggerPeriod = settings->recoveryTriggerPeriod; - 8001a2c: 683b ldr r3, [r7, #0] - 8001a2e: 695a ldr r2, [r3, #20] - 8001a30: 687b ldr r3, [r7, #4] - 8001a32: 615a str r2, [r3, #20] - ahrs->accelerationRecoveryTimeout = ahrs->settings.recoveryTriggerPeriod; - 8001a34: 687b ldr r3, [r7, #4] - 8001a36: 695b ldr r3, [r3, #20] - 8001a38: 461a mov r2, r3 - 8001a3a: 687b ldr r3, [r7, #4] - 8001a3c: 665a str r2, [r3, #100] @ 0x64 - ahrs->magneticRecoveryTimeout = ahrs->settings.recoveryTriggerPeriod; - 8001a3e: 687b ldr r3, [r7, #4] - 8001a40: 695b ldr r3, [r3, #20] - 8001a42: 461a mov r2, r3 - 8001a44: 687b ldr r3, [r7, #4] - 8001a46: 671a str r2, [r3, #112] @ 0x70 - if ((settings->gain == 0.0f) || (settings->recoveryTriggerPeriod == 0)) { // disable acceleration and magnetic rejection features if gain is zero - 8001a48: 683b ldr r3, [r7, #0] - 8001a4a: edd3 7a01 vldr s15, [r3, #4] - 8001a4e: eef5 7a40 vcmp.f32 s15, #0.0 - 8001a52: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001a56: d003 beq.n 8001a60 - 8001a58: 683b ldr r3, [r7, #0] - 8001a5a: 695b ldr r3, [r3, #20] - 8001a5c: 2b00 cmp r3, #0 - 8001a5e: d105 bne.n 8001a6c - ahrs->settings.accelerationRejection = FLT_MAX; - 8001a60: 687b ldr r3, [r7, #4] - 8001a62: 4a13 ldr r2, [pc, #76] @ (8001ab0 ) - 8001a64: 60da str r2, [r3, #12] - ahrs->settings.magneticRejection = FLT_MAX; - 8001a66: 687b ldr r3, [r7, #4] - 8001a68: 4a11 ldr r2, [pc, #68] @ (8001ab0 ) - 8001a6a: 611a str r2, [r3, #16] - } - if (ahrs->initialising == false) { - 8001a6c: 687b ldr r3, [r7, #4] - 8001a6e: f893 3034 ldrb.w r3, [r3, #52] @ 0x34 - 8001a72: f083 0301 eor.w r3, r3, #1 - 8001a76: b2db uxtb r3, r3 - 8001a78: 2b00 cmp r3, #0 - 8001a7a: d003 beq.n 8001a84 - ahrs->rampedGain = ahrs->settings.gain; - 8001a7c: 687b ldr r3, [r7, #4] - 8001a7e: 685a ldr r2, [r3, #4] - 8001a80: 687b ldr r3, [r7, #4] - 8001a82: 639a str r2, [r3, #56] @ 0x38 - } - ahrs->rampedGainStep = (INITIAL_GAIN - ahrs->settings.gain) / INITIALISATION_PERIOD; - 8001a84: 687b ldr r3, [r7, #4] - 8001a86: edd3 7a01 vldr s15, [r3, #4] - 8001a8a: eeb2 7a04 vmov.f32 s14, #36 @ 0x41200000 10.0 - 8001a8e: ee37 7a67 vsub.f32 s14, s14, s15 - 8001a92: eef0 6a08 vmov.f32 s13, #8 @ 0x40400000 3.0 - 8001a96: eec7 7a26 vdiv.f32 s15, s14, s13 - 8001a9a: 687b ldr r3, [r7, #4] - 8001a9c: edc3 7a0f vstr s15, [r3, #60] @ 0x3c -} - 8001aa0: bf00 nop - 8001aa2: 3708 adds r7, #8 - 8001aa4: 46bd mov sp, r7 - 8001aa6: bd80 pop {r7, pc} - 8001aa8: 3f7ae148 .word 0x3f7ae148 - 8001aac: 7f7fffff .word 0x7f7fffff - 8001ab0: 7f7fffff .word 0x7f7fffff - -08001ab4 : - * @param gyroscope Gyroscope measurement in degrees per second. - * @param accelerometer Accelerometer measurement in g. - * @param magnetometer Magnetometer measurement in arbitrary units. - * @param deltaTime Delta time in seconds. - */ -void FusionAhrsUpdate(FusionAhrs *const ahrs, const FusionVector gyroscope, const FusionVector accelerometer, const FusionVector magnetometer, const float deltaTime) { - 8001ab4: b590 push {r4, r7, lr} - 8001ab6: b0bf sub sp, #252 @ 0xfc - 8001ab8: af00 add r7, sp, #0 - 8001aba: 62f8 str r0, [r7, #44] @ 0x2c - 8001abc: eeb0 5a61 vmov.f32 s10, s3 - 8001ac0: eef0 5a42 vmov.f32 s11, s4 - 8001ac4: eeb0 6a62 vmov.f32 s12, s5 - 8001ac8: eef0 6a43 vmov.f32 s13, s6 - 8001acc: eeb0 7a63 vmov.f32 s14, s7 - 8001ad0: eef0 7a44 vmov.f32 s15, s8 - 8001ad4: edc7 4a01 vstr s9, [r7, #4] - 8001ad8: ed87 0a08 vstr s0, [r7, #32] - 8001adc: edc7 0a09 vstr s1, [r7, #36] @ 0x24 - 8001ae0: ed87 1a0a vstr s2, [r7, #40] @ 0x28 - 8001ae4: ed87 5a05 vstr s10, [r7, #20] - 8001ae8: edc7 5a06 vstr s11, [r7, #24] - 8001aec: ed87 6a07 vstr s12, [r7, #28] - 8001af0: edc7 6a02 vstr s13, [r7, #8] - 8001af4: ed87 7a03 vstr s14, [r7, #12] - 8001af8: edc7 7a04 vstr s15, [r7, #16] -#define Q ahrs->quaternion.element - - // Store accelerometer - ahrs->accelerometer = accelerometer; - 8001afc: 6afb ldr r3, [r7, #44] @ 0x2c - 8001afe: 3328 adds r3, #40 @ 0x28 - 8001b00: f107 0214 add.w r2, r7, #20 - 8001b04: ca07 ldmia r2, {r0, r1, r2} - 8001b06: e883 0007 stmia.w r3, {r0, r1, r2} - - // Reinitialise if gyroscope range exceeded - if ((fabsf(gyroscope.axis.x) > ahrs->settings.gyroscopeRange) || (fabsf(gyroscope.axis.y) > ahrs->settings.gyroscopeRange) || (fabsf(gyroscope.axis.z) > ahrs->settings.gyroscopeRange)) { - 8001b0a: edd7 7a08 vldr s15, [r7, #32] - 8001b0e: eeb0 7ae7 vabs.f32 s14, s15 - 8001b12: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b14: edd3 7a02 vldr s15, [r3, #8] - 8001b18: eeb4 7ae7 vcmpe.f32 s14, s15 - 8001b1c: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001b20: dc17 bgt.n 8001b52 - 8001b22: edd7 7a09 vldr s15, [r7, #36] @ 0x24 - 8001b26: eeb0 7ae7 vabs.f32 s14, s15 - 8001b2a: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b2c: edd3 7a02 vldr s15, [r3, #8] - 8001b30: eeb4 7ae7 vcmpe.f32 s14, s15 - 8001b34: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001b38: dc0b bgt.n 8001b52 - 8001b3a: edd7 7a0a vldr s15, [r7, #40] @ 0x28 - 8001b3e: eeb0 7ae7 vabs.f32 s14, s15 - 8001b42: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b44: edd3 7a02 vldr s15, [r3, #8] - 8001b48: eeb4 7ae7 vcmpe.f32 s14, s15 - 8001b4c: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001b50: dd15 ble.n 8001b7e - const FusionQuaternion quaternion = ahrs->quaternion; - 8001b52: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b54: f107 043c add.w r4, r7, #60 @ 0x3c - 8001b58: 3318 adds r3, #24 - 8001b5a: cb0f ldmia r3, {r0, r1, r2, r3} - 8001b5c: e884 000f stmia.w r4, {r0, r1, r2, r3} - FusionAhrsReset(ahrs); - 8001b60: 6af8 ldr r0, [r7, #44] @ 0x2c - 8001b62: f7ff fe8b bl 800187c - ahrs->quaternion = quaternion; - 8001b66: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b68: f103 0418 add.w r4, r3, #24 - 8001b6c: f107 033c add.w r3, r7, #60 @ 0x3c - 8001b70: cb0f ldmia r3, {r0, r1, r2, r3} - 8001b72: e884 000f stmia.w r4, {r0, r1, r2, r3} - ahrs->angularRateRecovery = true; - 8001b76: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b78: 2201 movs r2, #1 - 8001b7a: f883 2040 strb.w r2, [r3, #64] @ 0x40 - } - - // Ramp down gain during initialisation - if (ahrs->initialising) { - 8001b7e: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b80: f893 3034 ldrb.w r3, [r3, #52] @ 0x34 - 8001b84: 2b00 cmp r3, #0 - 8001b86: d02d beq.n 8001be4 - ahrs->rampedGain -= ahrs->rampedGainStep * deltaTime; - 8001b88: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b8a: ed93 7a0e vldr s14, [r3, #56] @ 0x38 - 8001b8e: 6afb ldr r3, [r7, #44] @ 0x2c - 8001b90: edd3 6a0f vldr s13, [r3, #60] @ 0x3c - 8001b94: edd7 7a01 vldr s15, [r7, #4] - 8001b98: ee66 7aa7 vmul.f32 s15, s13, s15 - 8001b9c: ee77 7a67 vsub.f32 s15, s14, s15 - 8001ba0: 6afb ldr r3, [r7, #44] @ 0x2c - 8001ba2: edc3 7a0e vstr s15, [r3, #56] @ 0x38 - if ((ahrs->rampedGain < ahrs->settings.gain) || (ahrs->settings.gain == 0.0f)) { - 8001ba6: 6afb ldr r3, [r7, #44] @ 0x2c - 8001ba8: ed93 7a0e vldr s14, [r3, #56] @ 0x38 - 8001bac: 6afb ldr r3, [r7, #44] @ 0x2c - 8001bae: edd3 7a01 vldr s15, [r3, #4] - 8001bb2: eeb4 7ae7 vcmpe.f32 s14, s15 - 8001bb6: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001bba: d407 bmi.n 8001bcc - 8001bbc: 6afb ldr r3, [r7, #44] @ 0x2c - 8001bbe: edd3 7a01 vldr s15, [r3, #4] - 8001bc2: eef5 7a40 vcmp.f32 s15, #0.0 - 8001bc6: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001bca: d10b bne.n 8001be4 - ahrs->rampedGain = ahrs->settings.gain; - 8001bcc: 6afb ldr r3, [r7, #44] @ 0x2c - 8001bce: 685a ldr r2, [r3, #4] - 8001bd0: 6afb ldr r3, [r7, #44] @ 0x2c - 8001bd2: 639a str r2, [r3, #56] @ 0x38 - ahrs->initialising = false; - 8001bd4: 6afb ldr r3, [r7, #44] @ 0x2c - 8001bd6: 2200 movs r2, #0 - 8001bd8: f883 2034 strb.w r2, [r3, #52] @ 0x34 - ahrs->angularRateRecovery = false; - 8001bdc: 6afb ldr r3, [r7, #44] @ 0x2c - 8001bde: 2200 movs r2, #0 - 8001be0: f883 2040 strb.w r2, [r3, #64] @ 0x40 - } - } - - // Calculate direction of gravity indicated by algorithm - const FusionVector halfGravity = HalfGravity(ahrs); - 8001be4: 6af8 ldr r0, [r7, #44] @ 0x2c - 8001be6: f000 faf4 bl 80021d2 - 8001bea: eef0 6a40 vmov.f32 s13, s0 - 8001bee: eeb0 7a60 vmov.f32 s14, s1 - 8001bf2: eef0 7a41 vmov.f32 s15, s2 - 8001bf6: edc7 6a25 vstr s13, [r7, #148] @ 0x94 - 8001bfa: ed87 7a26 vstr s14, [r7, #152] @ 0x98 - 8001bfe: edc7 7a27 vstr s15, [r7, #156] @ 0x9c - - // Calculate accelerometer feedback - FusionVector halfAccelerometerFeedback = FUSION_VECTOR_ZERO; - 8001c02: f04f 0300 mov.w r3, #0 - 8001c06: f8c7 3088 str.w r3, [r7, #136] @ 0x88 - 8001c0a: f04f 0300 mov.w r3, #0 - 8001c0e: f8c7 308c str.w r3, [r7, #140] @ 0x8c - 8001c12: f04f 0300 mov.w r3, #0 - 8001c16: f8c7 3090 str.w r3, [r7, #144] @ 0x90 - ahrs->accelerometerIgnored = true; - 8001c1a: 6afb ldr r3, [r7, #44] @ 0x2c - 8001c1c: 2201 movs r2, #1 - 8001c1e: f883 205c strb.w r2, [r3, #92] @ 0x5c - if (FusionVectorIsZero(accelerometer) == false) { - 8001c22: edd7 6a05 vldr s13, [r7, #20] - 8001c26: ed97 7a06 vldr s14, [r7, #24] - 8001c2a: edd7 7a07 vldr s15, [r7, #28] - 8001c2e: eeb0 0a66 vmov.f32 s0, s13 - 8001c32: eef0 0a47 vmov.f32 s1, s14 - 8001c36: eeb0 1a67 vmov.f32 s2, s15 - 8001c3a: f7ff f9d7 bl 8000fec - 8001c3e: 4603 mov r3, r0 - 8001c40: f083 0301 eor.w r3, r3, #1 - 8001c44: b2db uxtb r3, r3 - 8001c46: 2b00 cmp r3, #0 - 8001c48: f000 809c beq.w 8001d84 - - // Calculate accelerometer feedback scaled by 0.5 - ahrs->halfAccelerometerFeedback = Feedback(FusionVectorNormalise(accelerometer), halfGravity); - 8001c4c: edd7 6a05 vldr s13, [r7, #20] - 8001c50: ed97 7a06 vldr s14, [r7, #24] - 8001c54: edd7 7a07 vldr s15, [r7, #28] - 8001c58: eeb0 0a66 vmov.f32 s0, s13 - 8001c5c: eef0 0a47 vmov.f32 s1, s14 - 8001c60: eeb0 1a67 vmov.f32 s2, s15 - 8001c64: f7ff fc22 bl 80014ac - 8001c68: eef0 6a40 vmov.f32 s13, s0 - 8001c6c: eeb0 7a60 vmov.f32 s14, s1 - 8001c70: eef0 7a41 vmov.f32 s15, s2 - 8001c74: edc7 6a28 vstr s13, [r7, #160] @ 0xa0 - 8001c78: ed87 7a29 vstr s14, [r7, #164] @ 0xa4 - 8001c7c: edc7 7a2a vstr s15, [r7, #168] @ 0xa8 - 8001c80: 6afc ldr r4, [r7, #44] @ 0x2c - 8001c82: ed97 5a25 vldr s10, [r7, #148] @ 0x94 - 8001c86: edd7 5a26 vldr s11, [r7, #152] @ 0x98 - 8001c8a: ed97 6a27 vldr s12, [r7, #156] @ 0x9c - 8001c8e: edd7 6a28 vldr s13, [r7, #160] @ 0xa0 - 8001c92: ed97 7a29 vldr s14, [r7, #164] @ 0xa4 - 8001c96: edd7 7a2a vldr s15, [r7, #168] @ 0xa8 - 8001c9a: eef0 1a45 vmov.f32 s3, s10 - 8001c9e: eeb0 2a65 vmov.f32 s4, s11 - 8001ca2: eef0 2a46 vmov.f32 s5, s12 - 8001ca6: eeb0 0a66 vmov.f32 s0, s13 - 8001caa: eef0 0a47 vmov.f32 s1, s14 - 8001cae: eeb0 1a67 vmov.f32 s2, s15 - 8001cb2: f000 fc55 bl 8002560 - 8001cb6: eef0 6a40 vmov.f32 s13, s0 - 8001cba: eeb0 7a60 vmov.f32 s14, s1 - 8001cbe: eef0 7a41 vmov.f32 s15, s2 - 8001cc2: edc4 6a11 vstr s13, [r4, #68] @ 0x44 - 8001cc6: ed84 7a12 vstr s14, [r4, #72] @ 0x48 - 8001cca: edc4 7a13 vstr s15, [r4, #76] @ 0x4c - - // Don't ignore accelerometer if acceleration error below threshold - if (ahrs->initialising || ((FusionVectorMagnitudeSquared(ahrs->halfAccelerometerFeedback) <= ahrs->settings.accelerationRejection))) { - 8001cce: 6afb ldr r3, [r7, #44] @ 0x2c - 8001cd0: f893 3034 ldrb.w r3, [r3, #52] @ 0x34 - 8001cd4: 2b00 cmp r3, #0 - 8001cd6: d118 bne.n 8001d0a - 8001cd8: 6afb ldr r3, [r7, #44] @ 0x2c - 8001cda: edd3 6a11 vldr s13, [r3, #68] @ 0x44 - 8001cde: ed93 7a12 vldr s14, [r3, #72] @ 0x48 - 8001ce2: edd3 7a13 vldr s15, [r3, #76] @ 0x4c - 8001ce6: eeb0 0a66 vmov.f32 s0, s13 - 8001cea: eef0 0a47 vmov.f32 s1, s14 - 8001cee: eeb0 1a67 vmov.f32 s2, s15 - 8001cf2: f7ff fb67 bl 80013c4 - 8001cf6: eeb0 7a40 vmov.f32 s14, s0 - 8001cfa: 6afb ldr r3, [r7, #44] @ 0x2c - 8001cfc: edd3 7a03 vldr s15, [r3, #12] - 8001d00: eeb4 7ae7 vcmpe.f32 s14, s15 - 8001d04: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001d08: d80a bhi.n 8001d20 - ahrs->accelerometerIgnored = false; - 8001d0a: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d0c: 2200 movs r2, #0 - 8001d0e: f883 205c strb.w r2, [r3, #92] @ 0x5c - ahrs->accelerationRecoveryTrigger -= 9; - 8001d12: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d14: 6e1b ldr r3, [r3, #96] @ 0x60 - 8001d16: f1a3 0209 sub.w r2, r3, #9 - 8001d1a: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d1c: 661a str r2, [r3, #96] @ 0x60 - 8001d1e: e004 b.n 8001d2a - } else { - ahrs->accelerationRecoveryTrigger += 1; - 8001d20: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d22: 6e1b ldr r3, [r3, #96] @ 0x60 - 8001d24: 1c5a adds r2, r3, #1 - 8001d26: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d28: 661a str r2, [r3, #96] @ 0x60 - } - - // Don't ignore accelerometer during acceleration recovery - if (ahrs->accelerationRecoveryTrigger > ahrs->accelerationRecoveryTimeout) { - 8001d2a: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d2c: 6e1a ldr r2, [r3, #96] @ 0x60 - 8001d2e: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d30: 6e5b ldr r3, [r3, #100] @ 0x64 - 8001d32: 429a cmp r2, r3 - 8001d34: dd07 ble.n 8001d46 - ahrs->accelerationRecoveryTimeout = 0; - 8001d36: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d38: 2200 movs r2, #0 - 8001d3a: 665a str r2, [r3, #100] @ 0x64 - ahrs->accelerometerIgnored = false; - 8001d3c: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d3e: 2200 movs r2, #0 - 8001d40: f883 205c strb.w r2, [r3, #92] @ 0x5c - 8001d44: e004 b.n 8001d50 - } else { - ahrs->accelerationRecoveryTimeout = ahrs->settings.recoveryTriggerPeriod; - 8001d46: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d48: 695b ldr r3, [r3, #20] - 8001d4a: 461a mov r2, r3 - 8001d4c: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d4e: 665a str r2, [r3, #100] @ 0x64 - } - ahrs->accelerationRecoveryTrigger = Clamp(ahrs->accelerationRecoveryTrigger, 0, ahrs->settings.recoveryTriggerPeriod); - 8001d50: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d52: 6e18 ldr r0, [r3, #96] @ 0x60 - 8001d54: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d56: 695b ldr r3, [r3, #20] - 8001d58: 461a mov r2, r3 - 8001d5a: 2100 movs r1, #0 - 8001d5c: f000 fcb5 bl 80026ca - 8001d60: 4602 mov r2, r0 - 8001d62: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d64: 661a str r2, [r3, #96] @ 0x60 - - // Apply accelerometer feedback - if (ahrs->accelerometerIgnored == false) { - 8001d66: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d68: f893 305c ldrb.w r3, [r3, #92] @ 0x5c - 8001d6c: f083 0301 eor.w r3, r3, #1 - 8001d70: b2db uxtb r3, r3 - 8001d72: 2b00 cmp r3, #0 - 8001d74: d006 beq.n 8001d84 - halfAccelerometerFeedback = ahrs->halfAccelerometerFeedback; - 8001d76: 6afa ldr r2, [r7, #44] @ 0x2c - 8001d78: f107 0388 add.w r3, r7, #136 @ 0x88 - 8001d7c: 3244 adds r2, #68 @ 0x44 - 8001d7e: ca07 ldmia r2, {r0, r1, r2} - 8001d80: e883 0007 stmia.w r3, {r0, r1, r2} - } - } - - // Calculate magnetometer feedback - FusionVector halfMagnetometerFeedback = FUSION_VECTOR_ZERO; - 8001d84: f04f 0300 mov.w r3, #0 - 8001d88: 673b str r3, [r7, #112] @ 0x70 - 8001d8a: f04f 0300 mov.w r3, #0 - 8001d8e: 677b str r3, [r7, #116] @ 0x74 - 8001d90: f04f 0300 mov.w r3, #0 - 8001d94: 67bb str r3, [r7, #120] @ 0x78 - ahrs->magnetometerIgnored = true; - 8001d96: 6afb ldr r3, [r7, #44] @ 0x2c - 8001d98: 2201 movs r2, #1 - 8001d9a: f883 2068 strb.w r2, [r3, #104] @ 0x68 - if (FusionVectorIsZero(magnetometer) == false) { - 8001d9e: edd7 6a02 vldr s13, [r7, #8] - 8001da2: ed97 7a03 vldr s14, [r7, #12] - 8001da6: edd7 7a04 vldr s15, [r7, #16] - 8001daa: eeb0 0a66 vmov.f32 s0, s13 - 8001dae: eef0 0a47 vmov.f32 s1, s14 - 8001db2: eeb0 1a67 vmov.f32 s2, s15 - 8001db6: f7ff f919 bl 8000fec - 8001dba: 4603 mov r3, r0 - 8001dbc: f083 0301 eor.w r3, r3, #1 - 8001dc0: b2db uxtb r3, r3 - 8001dc2: 2b00 cmp r3, #0 - 8001dc4: f000 80d1 beq.w 8001f6a - - // Calculate direction of magnetic field indicated by algorithm - const FusionVector halfMagnetic = HalfMagnetic(ahrs); - 8001dc8: 6af8 ldr r0, [r7, #44] @ 0x2c - 8001dca: f000 fabf bl 800234c - 8001dce: eef0 6a40 vmov.f32 s13, s0 - 8001dd2: eeb0 7a60 vmov.f32 s14, s1 - 8001dd6: eef0 7a41 vmov.f32 s15, s2 - 8001dda: edc7 6a0c vstr s13, [r7, #48] @ 0x30 - 8001dde: ed87 7a0d vstr s14, [r7, #52] @ 0x34 - 8001de2: edc7 7a0e vstr s15, [r7, #56] @ 0x38 - - // Calculate magnetometer feedback scaled by 0.5 - ahrs->halfMagnetometerFeedback = Feedback(FusionVectorNormalise(FusionVectorCrossProduct(halfGravity, magnetometer)), halfMagnetic); - 8001de6: ed97 5a02 vldr s10, [r7, #8] - 8001dea: edd7 5a03 vldr s11, [r7, #12] - 8001dee: ed97 6a04 vldr s12, [r7, #16] - 8001df2: edd7 6a25 vldr s13, [r7, #148] @ 0x94 - 8001df6: ed97 7a26 vldr s14, [r7, #152] @ 0x98 - 8001dfa: edd7 7a27 vldr s15, [r7, #156] @ 0x9c - 8001dfe: eef0 1a45 vmov.f32 s3, s10 - 8001e02: eeb0 2a65 vmov.f32 s4, s11 - 8001e06: eef0 2a46 vmov.f32 s5, s12 - 8001e0a: eeb0 0a66 vmov.f32 s0, s13 - 8001e0e: eef0 0a47 vmov.f32 s1, s14 - 8001e12: eeb0 1a67 vmov.f32 s2, s15 - 8001e16: f7ff fa19 bl 800124c - 8001e1a: eef0 6a40 vmov.f32 s13, s0 - 8001e1e: eeb0 7a60 vmov.f32 s14, s1 - 8001e22: eef0 7a41 vmov.f32 s15, s2 - 8001e26: edc7 6a2b vstr s13, [r7, #172] @ 0xac - 8001e2a: ed87 7a2c vstr s14, [r7, #176] @ 0xb0 - 8001e2e: edc7 7a2d vstr s15, [r7, #180] @ 0xb4 - 8001e32: edd7 6a2b vldr s13, [r7, #172] @ 0xac - 8001e36: ed97 7a2c vldr s14, [r7, #176] @ 0xb0 - 8001e3a: edd7 7a2d vldr s15, [r7, #180] @ 0xb4 - 8001e3e: eeb0 0a66 vmov.f32 s0, s13 - 8001e42: eef0 0a47 vmov.f32 s1, s14 - 8001e46: eeb0 1a67 vmov.f32 s2, s15 - 8001e4a: f7ff fb2f bl 80014ac - 8001e4e: eef0 6a40 vmov.f32 s13, s0 - 8001e52: eeb0 7a60 vmov.f32 s14, s1 - 8001e56: eef0 7a41 vmov.f32 s15, s2 - 8001e5a: edc7 6a2e vstr s13, [r7, #184] @ 0xb8 - 8001e5e: ed87 7a2f vstr s14, [r7, #188] @ 0xbc - 8001e62: edc7 7a30 vstr s15, [r7, #192] @ 0xc0 - 8001e66: 6afc ldr r4, [r7, #44] @ 0x2c - 8001e68: ed97 5a0c vldr s10, [r7, #48] @ 0x30 - 8001e6c: edd7 5a0d vldr s11, [r7, #52] @ 0x34 - 8001e70: ed97 6a0e vldr s12, [r7, #56] @ 0x38 - 8001e74: edd7 6a2e vldr s13, [r7, #184] @ 0xb8 - 8001e78: ed97 7a2f vldr s14, [r7, #188] @ 0xbc - 8001e7c: edd7 7a30 vldr s15, [r7, #192] @ 0xc0 - 8001e80: eef0 1a45 vmov.f32 s3, s10 - 8001e84: eeb0 2a65 vmov.f32 s4, s11 - 8001e88: eef0 2a46 vmov.f32 s5, s12 - 8001e8c: eeb0 0a66 vmov.f32 s0, s13 - 8001e90: eef0 0a47 vmov.f32 s1, s14 - 8001e94: eeb0 1a67 vmov.f32 s2, s15 - 8001e98: f000 fb62 bl 8002560 - 8001e9c: eef0 6a40 vmov.f32 s13, s0 - 8001ea0: eeb0 7a60 vmov.f32 s14, s1 - 8001ea4: eef0 7a41 vmov.f32 s15, s2 - 8001ea8: edc4 6a14 vstr s13, [r4, #80] @ 0x50 - 8001eac: ed84 7a15 vstr s14, [r4, #84] @ 0x54 - 8001eb0: edc4 7a16 vstr s15, [r4, #88] @ 0x58 - - // Don't ignore magnetometer if magnetic error below threshold - if (ahrs->initialising || ((FusionVectorMagnitudeSquared(ahrs->halfMagnetometerFeedback) <= ahrs->settings.magneticRejection))) { - 8001eb4: 6afb ldr r3, [r7, #44] @ 0x2c - 8001eb6: f893 3034 ldrb.w r3, [r3, #52] @ 0x34 - 8001eba: 2b00 cmp r3, #0 - 8001ebc: d118 bne.n 8001ef0 - 8001ebe: 6afb ldr r3, [r7, #44] @ 0x2c - 8001ec0: edd3 6a14 vldr s13, [r3, #80] @ 0x50 - 8001ec4: ed93 7a15 vldr s14, [r3, #84] @ 0x54 - 8001ec8: edd3 7a16 vldr s15, [r3, #88] @ 0x58 - 8001ecc: eeb0 0a66 vmov.f32 s0, s13 - 8001ed0: eef0 0a47 vmov.f32 s1, s14 - 8001ed4: eeb0 1a67 vmov.f32 s2, s15 - 8001ed8: f7ff fa74 bl 80013c4 - 8001edc: eeb0 7a40 vmov.f32 s14, s0 - 8001ee0: 6afb ldr r3, [r7, #44] @ 0x2c - 8001ee2: edd3 7a04 vldr s15, [r3, #16] - 8001ee6: eeb4 7ae7 vcmpe.f32 s14, s15 - 8001eea: eef1 fa10 vmrs APSR_nzcv, fpscr - 8001eee: d80a bhi.n 8001f06 - ahrs->magnetometerIgnored = false; - 8001ef0: 6afb ldr r3, [r7, #44] @ 0x2c - 8001ef2: 2200 movs r2, #0 - 8001ef4: f883 2068 strb.w r2, [r3, #104] @ 0x68 - ahrs->magneticRecoveryTrigger -= 9; - 8001ef8: 6afb ldr r3, [r7, #44] @ 0x2c - 8001efa: 6edb ldr r3, [r3, #108] @ 0x6c - 8001efc: f1a3 0209 sub.w r2, r3, #9 - 8001f00: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f02: 66da str r2, [r3, #108] @ 0x6c - 8001f04: e004 b.n 8001f10 - } else { - ahrs->magneticRecoveryTrigger += 1; - 8001f06: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f08: 6edb ldr r3, [r3, #108] @ 0x6c - 8001f0a: 1c5a adds r2, r3, #1 - 8001f0c: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f0e: 66da str r2, [r3, #108] @ 0x6c - } - - // Don't ignore magnetometer during magnetic recovery - if (ahrs->magneticRecoveryTrigger > ahrs->magneticRecoveryTimeout) { - 8001f10: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f12: 6eda ldr r2, [r3, #108] @ 0x6c - 8001f14: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f16: 6f1b ldr r3, [r3, #112] @ 0x70 - 8001f18: 429a cmp r2, r3 - 8001f1a: dd07 ble.n 8001f2c - ahrs->magneticRecoveryTimeout = 0; - 8001f1c: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f1e: 2200 movs r2, #0 - 8001f20: 671a str r2, [r3, #112] @ 0x70 - ahrs->magnetometerIgnored = false; - 8001f22: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f24: 2200 movs r2, #0 - 8001f26: f883 2068 strb.w r2, [r3, #104] @ 0x68 - 8001f2a: e004 b.n 8001f36 - } else { - ahrs->magneticRecoveryTimeout = ahrs->settings.recoveryTriggerPeriod; - 8001f2c: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f2e: 695b ldr r3, [r3, #20] - 8001f30: 461a mov r2, r3 - 8001f32: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f34: 671a str r2, [r3, #112] @ 0x70 - } - ahrs->magneticRecoveryTrigger = Clamp(ahrs->magneticRecoveryTrigger, 0, ahrs->settings.recoveryTriggerPeriod); - 8001f36: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f38: 6ed8 ldr r0, [r3, #108] @ 0x6c - 8001f3a: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f3c: 695b ldr r3, [r3, #20] - 8001f3e: 461a mov r2, r3 - 8001f40: 2100 movs r1, #0 - 8001f42: f000 fbc2 bl 80026ca - 8001f46: 4602 mov r2, r0 - 8001f48: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f4a: 66da str r2, [r3, #108] @ 0x6c - - // Apply magnetometer feedback - if (ahrs->magnetometerIgnored == false) { - 8001f4c: 6afb ldr r3, [r7, #44] @ 0x2c - 8001f4e: f893 3068 ldrb.w r3, [r3, #104] @ 0x68 - 8001f52: f083 0301 eor.w r3, r3, #1 - 8001f56: b2db uxtb r3, r3 - 8001f58: 2b00 cmp r3, #0 - 8001f5a: d006 beq.n 8001f6a - halfMagnetometerFeedback = ahrs->halfMagnetometerFeedback; - 8001f5c: 6afa ldr r2, [r7, #44] @ 0x2c - 8001f5e: f107 0370 add.w r3, r7, #112 @ 0x70 - 8001f62: 3250 adds r2, #80 @ 0x50 - 8001f64: ca07 ldmia r2, {r0, r1, r2} - 8001f66: e883 0007 stmia.w r3, {r0, r1, r2} - } - } - - // Convert gyroscope to radians per second scaled by 0.5 - const FusionVector halfGyroscope = FusionVectorMultiplyScalar(gyroscope, FusionDegreesToRadians(0.5f)); - 8001f6a: eeb6 0a00 vmov.f32 s0, #96 @ 0x3f000000 0.5 - 8001f6e: f7fe ffb9 bl 8000ee4 - 8001f72: eeb0 6a40 vmov.f32 s12, s0 - 8001f76: edd7 6a08 vldr s13, [r7, #32] - 8001f7a: ed97 7a09 vldr s14, [r7, #36] @ 0x24 - 8001f7e: edd7 7a0a vldr s15, [r7, #40] @ 0x28 - 8001f82: eef0 1a46 vmov.f32 s3, s12 - 8001f86: eeb0 0a66 vmov.f32 s0, s13 - 8001f8a: eef0 0a47 vmov.f32 s1, s14 - 8001f8e: eeb0 1a67 vmov.f32 s2, s15 - 8001f92: f7ff f8c9 bl 8001128 - 8001f96: eef0 6a40 vmov.f32 s13, s0 - 8001f9a: eeb0 7a60 vmov.f32 s14, s1 - 8001f9e: eef0 7a41 vmov.f32 s15, s2 - 8001fa2: edc7 6a16 vstr s13, [r7, #88] @ 0x58 - 8001fa6: ed87 7a17 vstr s14, [r7, #92] @ 0x5c - 8001faa: edc7 7a18 vstr s15, [r7, #96] @ 0x60 - - // Apply feedback to gyroscope - const FusionVector adjustedHalfGyroscope = FusionVectorAdd(halfGyroscope, FusionVectorMultiplyScalar(FusionVectorAdd(halfAccelerometerFeedback, halfMagnetometerFeedback), ahrs->rampedGain)); - 8001fae: ed97 5a1c vldr s10, [r7, #112] @ 0x70 - 8001fb2: edd7 5a1d vldr s11, [r7, #116] @ 0x74 - 8001fb6: ed97 6a1e vldr s12, [r7, #120] @ 0x78 - 8001fba: edd7 6a22 vldr s13, [r7, #136] @ 0x88 - 8001fbe: ed97 7a23 vldr s14, [r7, #140] @ 0x8c - 8001fc2: edd7 7a24 vldr s15, [r7, #144] @ 0x90 - 8001fc6: eef0 1a45 vmov.f32 s3, s10 - 8001fca: eeb0 2a65 vmov.f32 s4, s11 - 8001fce: eef0 2a46 vmov.f32 s5, s12 - 8001fd2: eeb0 0a66 vmov.f32 s0, s13 - 8001fd6: eef0 0a47 vmov.f32 s1, s14 - 8001fda: eeb0 1a67 vmov.f32 s2, s15 - 8001fde: f7ff f835 bl 800104c - 8001fe2: eef0 6a40 vmov.f32 s13, s0 - 8001fe6: eeb0 7a60 vmov.f32 s14, s1 - 8001fea: eef0 7a41 vmov.f32 s15, s2 - 8001fee: edc7 6a31 vstr s13, [r7, #196] @ 0xc4 - 8001ff2: ed87 7a32 vstr s14, [r7, #200] @ 0xc8 - 8001ff6: edc7 7a33 vstr s15, [r7, #204] @ 0xcc - 8001ffa: 6afb ldr r3, [r7, #44] @ 0x2c - 8001ffc: ed93 6a0e vldr s12, [r3, #56] @ 0x38 - 8002000: edd7 6a31 vldr s13, [r7, #196] @ 0xc4 - 8002004: ed97 7a32 vldr s14, [r7, #200] @ 0xc8 - 8002008: edd7 7a33 vldr s15, [r7, #204] @ 0xcc - 800200c: eef0 1a46 vmov.f32 s3, s12 - 8002010: eeb0 0a66 vmov.f32 s0, s13 - 8002014: eef0 0a47 vmov.f32 s1, s14 - 8002018: eeb0 1a67 vmov.f32 s2, s15 - 800201c: f7ff f884 bl 8001128 - 8002020: eef0 6a40 vmov.f32 s13, s0 - 8002024: eeb0 7a60 vmov.f32 s14, s1 - 8002028: eef0 7a41 vmov.f32 s15, s2 - 800202c: edc7 6a34 vstr s13, [r7, #208] @ 0xd0 - 8002030: ed87 7a35 vstr s14, [r7, #212] @ 0xd4 - 8002034: edc7 7a36 vstr s15, [r7, #216] @ 0xd8 - 8002038: ed97 5a34 vldr s10, [r7, #208] @ 0xd0 - 800203c: edd7 5a35 vldr s11, [r7, #212] @ 0xd4 - 8002040: ed97 6a36 vldr s12, [r7, #216] @ 0xd8 - 8002044: edd7 6a16 vldr s13, [r7, #88] @ 0x58 - 8002048: ed97 7a17 vldr s14, [r7, #92] @ 0x5c - 800204c: edd7 7a18 vldr s15, [r7, #96] @ 0x60 - 8002050: eef0 1a45 vmov.f32 s3, s10 - 8002054: eeb0 2a65 vmov.f32 s4, s11 - 8002058: eef0 2a46 vmov.f32 s5, s12 - 800205c: eeb0 0a66 vmov.f32 s0, s13 - 8002060: eef0 0a47 vmov.f32 s1, s14 - 8002064: eeb0 1a67 vmov.f32 s2, s15 - 8002068: f7fe fff0 bl 800104c - 800206c: eef0 6a40 vmov.f32 s13, s0 - 8002070: eeb0 7a60 vmov.f32 s14, s1 - 8002074: eef0 7a41 vmov.f32 s15, s2 - 8002078: edc7 6a13 vstr s13, [r7, #76] @ 0x4c - 800207c: ed87 7a14 vstr s14, [r7, #80] @ 0x50 - 8002080: edc7 7a15 vstr s15, [r7, #84] @ 0x54 - - // Integrate rate of change of quaternion - ahrs->quaternion = FusionQuaternionAdd(ahrs->quaternion, FusionQuaternionMultiplyVector(ahrs->quaternion, FusionVectorMultiplyScalar(adjustedHalfGyroscope, deltaTime))); - 8002084: edd7 6a13 vldr s13, [r7, #76] @ 0x4c - 8002088: ed97 7a14 vldr s14, [r7, #80] @ 0x50 - 800208c: edd7 7a15 vldr s15, [r7, #84] @ 0x54 - 8002090: edd7 1a01 vldr s3, [r7, #4] - 8002094: eeb0 0a66 vmov.f32 s0, s13 - 8002098: eef0 0a47 vmov.f32 s1, s14 - 800209c: eeb0 1a67 vmov.f32 s2, s15 - 80020a0: f7ff f842 bl 8001128 - 80020a4: eef0 6a40 vmov.f32 s13, s0 - 80020a8: eeb0 7a60 vmov.f32 s14, s1 - 80020ac: eef0 7a41 vmov.f32 s15, s2 - 80020b0: edc7 6a37 vstr s13, [r7, #220] @ 0xdc - 80020b4: ed87 7a38 vstr s14, [r7, #224] @ 0xe0 - 80020b8: edc7 7a39 vstr s15, [r7, #228] @ 0xe4 - 80020bc: edd7 4a37 vldr s9, [r7, #220] @ 0xdc - 80020c0: ed97 5a38 vldr s10, [r7, #224] @ 0xe0 - 80020c4: edd7 5a39 vldr s11, [r7, #228] @ 0xe4 - 80020c8: 6afb ldr r3, [r7, #44] @ 0x2c - 80020ca: ed93 6a06 vldr s12, [r3, #24] - 80020ce: edd3 6a07 vldr s13, [r3, #28] - 80020d2: ed93 7a08 vldr s14, [r3, #32] - 80020d6: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 80020da: eeb0 2a64 vmov.f32 s4, s9 - 80020de: eef0 2a45 vmov.f32 s5, s10 - 80020e2: eeb0 3a65 vmov.f32 s6, s11 - 80020e6: eeb0 0a46 vmov.f32 s0, s12 - 80020ea: eef0 0a66 vmov.f32 s1, s13 - 80020ee: eeb0 1a47 vmov.f32 s2, s14 - 80020f2: eef0 1a67 vmov.f32 s3, s15 - 80020f6: f7ff fa8e bl 8001616 - 80020fa: eeb0 6a40 vmov.f32 s12, s0 - 80020fe: eef0 6a60 vmov.f32 s13, s1 - 8002102: eeb0 7a41 vmov.f32 s14, s2 - 8002106: eef0 7a61 vmov.f32 s15, s3 - 800210a: ed87 6a3a vstr s12, [r7, #232] @ 0xe8 - 800210e: edc7 6a3b vstr s13, [r7, #236] @ 0xec - 8002112: ed87 7a3c vstr s14, [r7, #240] @ 0xf0 - 8002116: edc7 7a3d vstr s15, [r7, #244] @ 0xf4 - 800211a: 6afc ldr r4, [r7, #44] @ 0x2c - 800211c: ed97 4a3a vldr s8, [r7, #232] @ 0xe8 - 8002120: edd7 4a3b vldr s9, [r7, #236] @ 0xec - 8002124: ed97 5a3c vldr s10, [r7, #240] @ 0xf0 - 8002128: edd7 5a3d vldr s11, [r7, #244] @ 0xf4 - 800212c: 6afb ldr r3, [r7, #44] @ 0x2c - 800212e: ed93 6a06 vldr s12, [r3, #24] - 8002132: edd3 6a07 vldr s13, [r3, #28] - 8002136: ed93 7a08 vldr s14, [r3, #32] - 800213a: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 800213e: eeb0 2a44 vmov.f32 s4, s8 - 8002142: eef0 2a64 vmov.f32 s5, s9 - 8002146: eeb0 3a45 vmov.f32 s6, s10 - 800214a: eef0 3a65 vmov.f32 s7, s11 - 800214e: eeb0 0a46 vmov.f32 s0, s12 - 8002152: eef0 0a66 vmov.f32 s1, s13 - 8002156: eeb0 1a47 vmov.f32 s2, s14 - 800215a: eef0 1a67 vmov.f32 s3, s15 - 800215e: f7ff f9f8 bl 8001552 - 8002162: eeb0 6a40 vmov.f32 s12, s0 - 8002166: eef0 6a60 vmov.f32 s13, s1 - 800216a: eeb0 7a41 vmov.f32 s14, s2 - 800216e: eef0 7a61 vmov.f32 s15, s3 - 8002172: ed84 6a06 vstr s12, [r4, #24] - 8002176: edc4 6a07 vstr s13, [r4, #28] - 800217a: ed84 7a08 vstr s14, [r4, #32] - 800217e: edc4 7a09 vstr s15, [r4, #36] @ 0x24 - - // Normalise quaternion - ahrs->quaternion = FusionQuaternionNormalise(ahrs->quaternion); - 8002182: 6afc ldr r4, [r7, #44] @ 0x2c - 8002184: 6afb ldr r3, [r7, #44] @ 0x2c - 8002186: ed93 6a06 vldr s12, [r3, #24] - 800218a: edd3 6a07 vldr s13, [r3, #28] - 800218e: ed93 7a08 vldr s14, [r3, #32] - 8002192: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 8002196: eeb0 0a46 vmov.f32 s0, s12 - 800219a: eef0 0a66 vmov.f32 s1, s13 - 800219e: eeb0 1a47 vmov.f32 s2, s14 - 80021a2: eef0 1a67 vmov.f32 s3, s15 - 80021a6: f7ff fad6 bl 8001756 - 80021aa: eeb0 6a40 vmov.f32 s12, s0 - 80021ae: eef0 6a60 vmov.f32 s13, s1 - 80021b2: eeb0 7a41 vmov.f32 s14, s2 - 80021b6: eef0 7a61 vmov.f32 s15, s3 - 80021ba: ed84 6a06 vstr s12, [r4, #24] - 80021be: edc4 6a07 vstr s13, [r4, #28] - 80021c2: ed84 7a08 vstr s14, [r4, #32] - 80021c6: edc4 7a09 vstr s15, [r4, #36] @ 0x24 -#undef Q -} - 80021ca: bf00 nop - 80021cc: 37fc adds r7, #252 @ 0xfc - 80021ce: 46bd mov sp, r7 - 80021d0: bd90 pop {r4, r7, pc} - -080021d2 : -/** - * @brief Returns the direction of gravity scaled by 0.5. - * @param ahrs AHRS algorithm structure. - * @return Direction of gravity scaled by 0.5. - */ -static inline FusionVector HalfGravity(const FusionAhrs *const ahrs) { - 80021d2: b480 push {r7} - 80021d4: b093 sub sp, #76 @ 0x4c - 80021d6: af00 add r7, sp, #0 - 80021d8: 6178 str r0, [r7, #20] -#define Q ahrs->quaternion.element - switch (ahrs->settings.convention) { - 80021da: 697b ldr r3, [r7, #20] - 80021dc: 781b ldrb r3, [r3, #0] - 80021de: 2b01 cmp r3, #1 - 80021e0: dc02 bgt.n 80021e8 - 80021e2: 2b00 cmp r3, #0 - 80021e4: da03 bge.n 80021ee - 80021e6: e094 b.n 8002312 - 80021e8: 2b02 cmp r3, #2 - 80021ea: d048 beq.n 800227e - 80021ec: e091 b.n 8002312 - case FusionConventionNwu: - case FusionConventionEnu: { - const FusionVector halfGravity = {.axis = { - .x = Q.x * Q.z - Q.w * Q.y, - 80021ee: 697b ldr r3, [r7, #20] - 80021f0: ed93 7a07 vldr s14, [r3, #28] - 80021f4: 697b ldr r3, [r7, #20] - 80021f6: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 80021fa: ee27 7a27 vmul.f32 s14, s14, s15 - 80021fe: 697b ldr r3, [r7, #20] - 8002200: edd3 6a06 vldr s13, [r3, #24] - 8002204: 697b ldr r3, [r7, #20] - 8002206: edd3 7a08 vldr s15, [r3, #32] - 800220a: ee66 7aa7 vmul.f32 s15, s13, s15 - 800220e: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector halfGravity = {.axis = { - 8002212: edc7 7a09 vstr s15, [r7, #36] @ 0x24 - .y = Q.y * Q.z + Q.w * Q.x, - 8002216: 697b ldr r3, [r7, #20] - 8002218: ed93 7a08 vldr s14, [r3, #32] - 800221c: 697b ldr r3, [r7, #20] - 800221e: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 8002222: ee27 7a27 vmul.f32 s14, s14, s15 - 8002226: 697b ldr r3, [r7, #20] - 8002228: edd3 6a06 vldr s13, [r3, #24] - 800222c: 697b ldr r3, [r7, #20] - 800222e: edd3 7a07 vldr s15, [r3, #28] - 8002232: ee66 7aa7 vmul.f32 s15, s13, s15 - 8002236: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionVector halfGravity = {.axis = { - 800223a: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - .z = Q.w * Q.w - 0.5f + Q.z * Q.z, - 800223e: 697b ldr r3, [r7, #20] - 8002240: ed93 7a06 vldr s14, [r3, #24] - 8002244: 697b ldr r3, [r7, #20] - 8002246: edd3 7a06 vldr s15, [r3, #24] - 800224a: ee67 7a27 vmul.f32 s15, s14, s15 - 800224e: eeb6 7a00 vmov.f32 s14, #96 @ 0x3f000000 0.5 - 8002252: ee37 7ac7 vsub.f32 s14, s15, s14 - 8002256: 697b ldr r3, [r7, #20] - 8002258: edd3 6a09 vldr s13, [r3, #36] @ 0x24 - 800225c: 697b ldr r3, [r7, #20] - 800225e: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 8002262: ee66 7aa7 vmul.f32 s15, s13, s15 - 8002266: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionVector halfGravity = {.axis = { - 800226a: edc7 7a0b vstr s15, [r7, #44] @ 0x2c - }}; // third column of transposed rotation matrix scaled by 0.5 - return halfGravity; - 800226e: f107 033c add.w r3, r7, #60 @ 0x3c - 8002272: f107 0224 add.w r2, r7, #36 @ 0x24 - 8002276: ca07 ldmia r2, {r0, r1, r2} - 8002278: e883 0007 stmia.w r3, {r0, r1, r2} - 800227c: e052 b.n 8002324 - } - case FusionConventionNed: { - const FusionVector halfGravity = {.axis = { - .x = Q.w * Q.y - Q.x * Q.z, - 800227e: 697b ldr r3, [r7, #20] - 8002280: ed93 7a06 vldr s14, [r3, #24] - 8002284: 697b ldr r3, [r7, #20] - 8002286: edd3 7a08 vldr s15, [r3, #32] - 800228a: ee27 7a27 vmul.f32 s14, s14, s15 - 800228e: 697b ldr r3, [r7, #20] - 8002290: edd3 6a07 vldr s13, [r3, #28] - 8002294: 697b ldr r3, [r7, #20] - 8002296: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 800229a: ee66 7aa7 vmul.f32 s15, s13, s15 - 800229e: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector halfGravity = {.axis = { - 80022a2: edc7 7a06 vstr s15, [r7, #24] - .y = -1.0f * (Q.y * Q.z + Q.w * Q.x), - 80022a6: 697b ldr r3, [r7, #20] - 80022a8: ed93 7a08 vldr s14, [r3, #32] - 80022ac: 697b ldr r3, [r7, #20] - 80022ae: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 80022b2: ee27 7a27 vmul.f32 s14, s14, s15 - 80022b6: 697b ldr r3, [r7, #20] - 80022b8: edd3 6a06 vldr s13, [r3, #24] - 80022bc: 697b ldr r3, [r7, #20] - 80022be: edd3 7a07 vldr s15, [r3, #28] - 80022c2: ee66 7aa7 vmul.f32 s15, s13, s15 - 80022c6: ee77 7a27 vadd.f32 s15, s14, s15 - 80022ca: eef1 7a67 vneg.f32 s15, s15 - const FusionVector halfGravity = {.axis = { - 80022ce: edc7 7a07 vstr s15, [r7, #28] - .z = 0.5f - Q.w * Q.w - Q.z * Q.z, - 80022d2: 697b ldr r3, [r7, #20] - 80022d4: ed93 7a06 vldr s14, [r3, #24] - 80022d8: 697b ldr r3, [r7, #20] - 80022da: edd3 7a06 vldr s15, [r3, #24] - 80022de: ee67 7a27 vmul.f32 s15, s14, s15 - 80022e2: eeb6 7a00 vmov.f32 s14, #96 @ 0x3f000000 0.5 - 80022e6: ee37 7a67 vsub.f32 s14, s14, s15 - 80022ea: 697b ldr r3, [r7, #20] - 80022ec: edd3 6a09 vldr s13, [r3, #36] @ 0x24 - 80022f0: 697b ldr r3, [r7, #20] - 80022f2: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 80022f6: ee66 7aa7 vmul.f32 s15, s13, s15 - 80022fa: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector halfGravity = {.axis = { - 80022fe: edc7 7a08 vstr s15, [r7, #32] - }}; // third column of transposed rotation matrix scaled by -0.5 - return halfGravity; - 8002302: f107 033c add.w r3, r7, #60 @ 0x3c - 8002306: f107 0218 add.w r2, r7, #24 - 800230a: ca07 ldmia r2, {r0, r1, r2} - 800230c: e883 0007 stmia.w r3, {r0, r1, r2} - 8002310: e008 b.n 8002324 - } - } - return FUSION_VECTOR_ZERO; // avoid compiler warning - 8002312: f04f 0300 mov.w r3, #0 - 8002316: 63fb str r3, [r7, #60] @ 0x3c - 8002318: f04f 0300 mov.w r3, #0 - 800231c: 643b str r3, [r7, #64] @ 0x40 - 800231e: f04f 0300 mov.w r3, #0 - 8002322: 647b str r3, [r7, #68] @ 0x44 -#undef Q -} - 8002324: 6bf9 ldr r1, [r7, #60] @ 0x3c - 8002326: 6c3a ldr r2, [r7, #64] @ 0x40 - 8002328: 6c7b ldr r3, [r7, #68] @ 0x44 - 800232a: ee06 1a90 vmov s13, r1 - 800232e: ee07 2a10 vmov s14, r2 - 8002332: ee07 3a90 vmov s15, r3 - 8002336: eeb0 0a66 vmov.f32 s0, s13 - 800233a: eef0 0a47 vmov.f32 s1, s14 - 800233e: eeb0 1a67 vmov.f32 s2, s15 - 8002342: 374c adds r7, #76 @ 0x4c - 8002344: 46bd mov sp, r7 - 8002346: f85d 7b04 ldr.w r7, [sp], #4 - 800234a: 4770 bx lr - -0800234c : -/** - * @brief Returns the direction of the magnetic field scaled by 0.5. - * @param ahrs AHRS algorithm structure. - * @return Direction of the magnetic field scaled by 0.5. - */ -static inline FusionVector HalfMagnetic(const FusionAhrs *const ahrs) { - 800234c: b480 push {r7} - 800234e: b097 sub sp, #92 @ 0x5c - 8002350: af00 add r7, sp, #0 - 8002352: 6178 str r0, [r7, #20] -#define Q ahrs->quaternion.element - switch (ahrs->settings.convention) { - 8002354: 697b ldr r3, [r7, #20] - 8002356: 781b ldrb r3, [r3, #0] - 8002358: 2b02 cmp r3, #2 - 800235a: f000 809a beq.w 8002492 - 800235e: 2b02 cmp r3, #2 - 8002360: f300 80e1 bgt.w 8002526 - 8002364: 2b00 cmp r3, #0 - 8002366: d002 beq.n 800236e - 8002368: 2b01 cmp r3, #1 - 800236a: d048 beq.n 80023fe - 800236c: e0db b.n 8002526 - case FusionConventionNwu: { - const FusionVector halfMagnetic = {.axis = { - .x = Q.x * Q.y + Q.w * Q.z, - 800236e: 697b ldr r3, [r7, #20] - 8002370: ed93 7a07 vldr s14, [r3, #28] - 8002374: 697b ldr r3, [r7, #20] - 8002376: edd3 7a08 vldr s15, [r3, #32] - 800237a: ee27 7a27 vmul.f32 s14, s14, s15 - 800237e: 697b ldr r3, [r7, #20] - 8002380: edd3 6a06 vldr s13, [r3, #24] - 8002384: 697b ldr r3, [r7, #20] - 8002386: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 800238a: ee66 7aa7 vmul.f32 s15, s13, s15 - 800238e: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionVector halfMagnetic = {.axis = { - 8002392: edc7 7a0d vstr s15, [r7, #52] @ 0x34 - .y = Q.w * Q.w - 0.5f + Q.y * Q.y, - 8002396: 697b ldr r3, [r7, #20] - 8002398: ed93 7a06 vldr s14, [r3, #24] - 800239c: 697b ldr r3, [r7, #20] - 800239e: edd3 7a06 vldr s15, [r3, #24] - 80023a2: ee67 7a27 vmul.f32 s15, s14, s15 - 80023a6: eeb6 7a00 vmov.f32 s14, #96 @ 0x3f000000 0.5 - 80023aa: ee37 7ac7 vsub.f32 s14, s15, s14 - 80023ae: 697b ldr r3, [r7, #20] - 80023b0: edd3 6a08 vldr s13, [r3, #32] - 80023b4: 697b ldr r3, [r7, #20] - 80023b6: edd3 7a08 vldr s15, [r3, #32] - 80023ba: ee66 7aa7 vmul.f32 s15, s13, s15 - 80023be: ee77 7a27 vadd.f32 s15, s14, s15 - const FusionVector halfMagnetic = {.axis = { - 80023c2: edc7 7a0e vstr s15, [r7, #56] @ 0x38 - .z = Q.y * Q.z - Q.w * Q.x, - 80023c6: 697b ldr r3, [r7, #20] - 80023c8: ed93 7a08 vldr s14, [r3, #32] - 80023cc: 697b ldr r3, [r7, #20] - 80023ce: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 80023d2: ee27 7a27 vmul.f32 s14, s14, s15 - 80023d6: 697b ldr r3, [r7, #20] - 80023d8: edd3 6a06 vldr s13, [r3, #24] - 80023dc: 697b ldr r3, [r7, #20] - 80023de: edd3 7a07 vldr s15, [r3, #28] - 80023e2: ee66 7aa7 vmul.f32 s15, s13, s15 - 80023e6: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector halfMagnetic = {.axis = { - 80023ea: edc7 7a0f vstr s15, [r7, #60] @ 0x3c - }}; // second column of transposed rotation matrix scaled by 0.5 - return halfMagnetic; - 80023ee: f107 034c add.w r3, r7, #76 @ 0x4c - 80023f2: f107 0234 add.w r2, r7, #52 @ 0x34 - 80023f6: ca07 ldmia r2, {r0, r1, r2} - 80023f8: e883 0007 stmia.w r3, {r0, r1, r2} - 80023fc: e09c b.n 8002538 - } - case FusionConventionEnu: { - const FusionVector halfMagnetic = {.axis = { - .x = 0.5f - Q.w * Q.w - Q.x * Q.x, - 80023fe: 697b ldr r3, [r7, #20] - 8002400: ed93 7a06 vldr s14, [r3, #24] - 8002404: 697b ldr r3, [r7, #20] - 8002406: edd3 7a06 vldr s15, [r3, #24] - 800240a: ee67 7a27 vmul.f32 s15, s14, s15 - 800240e: eeb6 7a00 vmov.f32 s14, #96 @ 0x3f000000 0.5 - 8002412: ee37 7a67 vsub.f32 s14, s14, s15 - 8002416: 697b ldr r3, [r7, #20] - 8002418: edd3 6a07 vldr s13, [r3, #28] - 800241c: 697b ldr r3, [r7, #20] - 800241e: edd3 7a07 vldr s15, [r3, #28] - 8002422: ee66 7aa7 vmul.f32 s15, s13, s15 - 8002426: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector halfMagnetic = {.axis = { - 800242a: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - .y = Q.w * Q.z - Q.x * Q.y, - 800242e: 697b ldr r3, [r7, #20] - 8002430: ed93 7a06 vldr s14, [r3, #24] - 8002434: 697b ldr r3, [r7, #20] - 8002436: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 800243a: ee27 7a27 vmul.f32 s14, s14, s15 - 800243e: 697b ldr r3, [r7, #20] - 8002440: edd3 6a07 vldr s13, [r3, #28] - 8002444: 697b ldr r3, [r7, #20] - 8002446: edd3 7a08 vldr s15, [r3, #32] - 800244a: ee66 7aa7 vmul.f32 s15, s13, s15 - 800244e: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector halfMagnetic = {.axis = { - 8002452: edc7 7a0b vstr s15, [r7, #44] @ 0x2c - .z = -1.0f * (Q.x * Q.z + Q.w * Q.y), - 8002456: 697b ldr r3, [r7, #20] - 8002458: ed93 7a07 vldr s14, [r3, #28] - 800245c: 697b ldr r3, [r7, #20] - 800245e: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 8002462: ee27 7a27 vmul.f32 s14, s14, s15 - 8002466: 697b ldr r3, [r7, #20] - 8002468: edd3 6a06 vldr s13, [r3, #24] - 800246c: 697b ldr r3, [r7, #20] - 800246e: edd3 7a08 vldr s15, [r3, #32] - 8002472: ee66 7aa7 vmul.f32 s15, s13, s15 - 8002476: ee77 7a27 vadd.f32 s15, s14, s15 - 800247a: eef1 7a67 vneg.f32 s15, s15 - const FusionVector halfMagnetic = {.axis = { - 800247e: edc7 7a0c vstr s15, [r7, #48] @ 0x30 - }}; // first column of transposed rotation matrix scaled by -0.5 - return halfMagnetic; - 8002482: f107 034c add.w r3, r7, #76 @ 0x4c - 8002486: f107 0228 add.w r2, r7, #40 @ 0x28 - 800248a: ca07 ldmia r2, {r0, r1, r2} - 800248c: e883 0007 stmia.w r3, {r0, r1, r2} - 8002490: e052 b.n 8002538 - } - case FusionConventionNed: { - const FusionVector halfMagnetic = {.axis = { - .x = -1.0f * (Q.x * Q.y + Q.w * Q.z), - 8002492: 697b ldr r3, [r7, #20] - 8002494: ed93 7a07 vldr s14, [r3, #28] - 8002498: 697b ldr r3, [r7, #20] - 800249a: edd3 7a08 vldr s15, [r3, #32] - 800249e: ee27 7a27 vmul.f32 s14, s14, s15 - 80024a2: 697b ldr r3, [r7, #20] - 80024a4: edd3 6a06 vldr s13, [r3, #24] - 80024a8: 697b ldr r3, [r7, #20] - 80024aa: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 80024ae: ee66 7aa7 vmul.f32 s15, s13, s15 - 80024b2: ee77 7a27 vadd.f32 s15, s14, s15 - 80024b6: eef1 7a67 vneg.f32 s15, s15 - const FusionVector halfMagnetic = {.axis = { - 80024ba: edc7 7a07 vstr s15, [r7, #28] - .y = 0.5f - Q.w * Q.w - Q.y * Q.y, - 80024be: 697b ldr r3, [r7, #20] - 80024c0: ed93 7a06 vldr s14, [r3, #24] - 80024c4: 697b ldr r3, [r7, #20] - 80024c6: edd3 7a06 vldr s15, [r3, #24] - 80024ca: ee67 7a27 vmul.f32 s15, s14, s15 - 80024ce: eeb6 7a00 vmov.f32 s14, #96 @ 0x3f000000 0.5 - 80024d2: ee37 7a67 vsub.f32 s14, s14, s15 - 80024d6: 697b ldr r3, [r7, #20] - 80024d8: edd3 6a08 vldr s13, [r3, #32] - 80024dc: 697b ldr r3, [r7, #20] - 80024de: edd3 7a08 vldr s15, [r3, #32] - 80024e2: ee66 7aa7 vmul.f32 s15, s13, s15 - 80024e6: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector halfMagnetic = {.axis = { - 80024ea: edc7 7a08 vstr s15, [r7, #32] - .z = Q.w * Q.x - Q.y * Q.z, - 80024ee: 697b ldr r3, [r7, #20] - 80024f0: ed93 7a06 vldr s14, [r3, #24] - 80024f4: 697b ldr r3, [r7, #20] - 80024f6: edd3 7a07 vldr s15, [r3, #28] - 80024fa: ee27 7a27 vmul.f32 s14, s14, s15 - 80024fe: 697b ldr r3, [r7, #20] - 8002500: edd3 6a08 vldr s13, [r3, #32] - 8002504: 697b ldr r3, [r7, #20] - 8002506: edd3 7a09 vldr s15, [r3, #36] @ 0x24 - 800250a: ee66 7aa7 vmul.f32 s15, s13, s15 - 800250e: ee77 7a67 vsub.f32 s15, s14, s15 - const FusionVector halfMagnetic = {.axis = { - 8002512: edc7 7a09 vstr s15, [r7, #36] @ 0x24 - }}; // second column of transposed rotation matrix scaled by -0.5 - return halfMagnetic; - 8002516: f107 034c add.w r3, r7, #76 @ 0x4c - 800251a: f107 021c add.w r2, r7, #28 - 800251e: ca07 ldmia r2, {r0, r1, r2} - 8002520: e883 0007 stmia.w r3, {r0, r1, r2} - 8002524: e008 b.n 8002538 - } - } - return FUSION_VECTOR_ZERO; // avoid compiler warning - 8002526: f04f 0300 mov.w r3, #0 - 800252a: 64fb str r3, [r7, #76] @ 0x4c - 800252c: f04f 0300 mov.w r3, #0 - 8002530: 653b str r3, [r7, #80] @ 0x50 - 8002532: f04f 0300 mov.w r3, #0 - 8002536: 657b str r3, [r7, #84] @ 0x54 -#undef Q -} - 8002538: 6cf9 ldr r1, [r7, #76] @ 0x4c - 800253a: 6d3a ldr r2, [r7, #80] @ 0x50 - 800253c: 6d7b ldr r3, [r7, #84] @ 0x54 - 800253e: ee06 1a90 vmov s13, r1 - 8002542: ee07 2a10 vmov s14, r2 - 8002546: ee07 3a90 vmov s15, r3 - 800254a: eeb0 0a66 vmov.f32 s0, s13 - 800254e: eef0 0a47 vmov.f32 s1, s14 - 8002552: eeb0 1a67 vmov.f32 s2, s15 - 8002556: 375c adds r7, #92 @ 0x5c - 8002558: 46bd mov sp, r7 - 800255a: f85d 7b04 ldr.w r7, [sp], #4 - 800255e: 4770 bx lr - -08002560 : - * @brief Returns the feedback. - * @param sensor Sensor. - * @param reference Reference. - * @return Feedback. - */ -static inline FusionVector Feedback(const FusionVector sensor, const FusionVector reference) { - 8002560: b580 push {r7, lr} - 8002562: b090 sub sp, #64 @ 0x40 - 8002564: af00 add r7, sp, #0 - 8002566: eeb0 5a40 vmov.f32 s10, s0 - 800256a: eef0 5a60 vmov.f32 s11, s1 - 800256e: eeb0 6a41 vmov.f32 s12, s2 - 8002572: eef0 6a61 vmov.f32 s13, s3 - 8002576: eeb0 7a42 vmov.f32 s14, s4 - 800257a: eef0 7a62 vmov.f32 s15, s5 - 800257e: ed87 5a07 vstr s10, [r7, #28] - 8002582: edc7 5a08 vstr s11, [r7, #32] - 8002586: ed87 6a09 vstr s12, [r7, #36] @ 0x24 - 800258a: edc7 6a04 vstr s13, [r7, #16] - 800258e: ed87 7a05 vstr s14, [r7, #20] - 8002592: edc7 7a06 vstr s15, [r7, #24] - if (FusionVectorDotProduct(sensor, reference) < 0.0f) { // if error is >90 degrees - 8002596: ed97 5a04 vldr s10, [r7, #16] - 800259a: edd7 5a05 vldr s11, [r7, #20] - 800259e: ed97 6a06 vldr s12, [r7, #24] - 80025a2: edd7 6a07 vldr s13, [r7, #28] - 80025a6: ed97 7a08 vldr s14, [r7, #32] - 80025aa: edd7 7a09 vldr s15, [r7, #36] @ 0x24 - 80025ae: eef0 1a45 vmov.f32 s3, s10 - 80025b2: eeb0 2a65 vmov.f32 s4, s11 - 80025b6: eef0 2a46 vmov.f32 s5, s12 - 80025ba: eeb0 0a66 vmov.f32 s0, s13 - 80025be: eef0 0a47 vmov.f32 s1, s14 - 80025c2: eeb0 1a67 vmov.f32 s2, s15 - 80025c6: f7fe fea7 bl 8001318 - 80025ca: eef0 7a40 vmov.f32 s15, s0 - 80025ce: eef5 7ac0 vcmpe.f32 s15, #0.0 - 80025d2: eef1 fa10 vmrs APSR_nzcv, fpscr - 80025d6: d540 bpl.n 800265a - return FusionVectorNormalise(FusionVectorCrossProduct(sensor, reference)); - 80025d8: ed97 5a04 vldr s10, [r7, #16] - 80025dc: edd7 5a05 vldr s11, [r7, #20] - 80025e0: ed97 6a06 vldr s12, [r7, #24] - 80025e4: edd7 6a07 vldr s13, [r7, #28] - 80025e8: ed97 7a08 vldr s14, [r7, #32] - 80025ec: edd7 7a09 vldr s15, [r7, #36] @ 0x24 - 80025f0: eef0 1a45 vmov.f32 s3, s10 - 80025f4: eeb0 2a65 vmov.f32 s4, s11 - 80025f8: eef0 2a46 vmov.f32 s5, s12 - 80025fc: eeb0 0a66 vmov.f32 s0, s13 - 8002600: eef0 0a47 vmov.f32 s1, s14 - 8002604: eeb0 1a67 vmov.f32 s2, s15 - 8002608: f7fe fe20 bl 800124c - 800260c: eef0 6a40 vmov.f32 s13, s0 - 8002610: eeb0 7a60 vmov.f32 s14, s1 - 8002614: eef0 7a41 vmov.f32 s15, s2 - 8002618: edc7 6a0d vstr s13, [r7, #52] @ 0x34 - 800261c: ed87 7a0e vstr s14, [r7, #56] @ 0x38 - 8002620: edc7 7a0f vstr s15, [r7, #60] @ 0x3c - 8002624: edd7 6a0d vldr s13, [r7, #52] @ 0x34 - 8002628: ed97 7a0e vldr s14, [r7, #56] @ 0x38 - 800262c: edd7 7a0f vldr s15, [r7, #60] @ 0x3c - 8002630: eeb0 0a66 vmov.f32 s0, s13 - 8002634: eef0 0a47 vmov.f32 s1, s14 - 8002638: eeb0 1a67 vmov.f32 s2, s15 - 800263c: f7fe ff36 bl 80014ac - 8002640: eef0 6a40 vmov.f32 s13, s0 - 8002644: eeb0 7a60 vmov.f32 s14, s1 - 8002648: eef0 7a41 vmov.f32 s15, s2 - 800264c: edc7 6a0a vstr s13, [r7, #40] @ 0x28 - 8002650: ed87 7a0b vstr s14, [r7, #44] @ 0x2c - 8002654: edc7 7a0c vstr s15, [r7, #48] @ 0x30 - 8002658: e025 b.n 80026a6 - } - return FusionVectorCrossProduct(sensor, reference); - 800265a: ed97 5a04 vldr s10, [r7, #16] - 800265e: edd7 5a05 vldr s11, [r7, #20] - 8002662: ed97 6a06 vldr s12, [r7, #24] - 8002666: edd7 6a07 vldr s13, [r7, #28] - 800266a: ed97 7a08 vldr s14, [r7, #32] - 800266e: edd7 7a09 vldr s15, [r7, #36] @ 0x24 - 8002672: eef0 1a45 vmov.f32 s3, s10 - 8002676: eeb0 2a65 vmov.f32 s4, s11 - 800267a: eef0 2a46 vmov.f32 s5, s12 - 800267e: eeb0 0a66 vmov.f32 s0, s13 - 8002682: eef0 0a47 vmov.f32 s1, s14 - 8002686: eeb0 1a67 vmov.f32 s2, s15 - 800268a: f7fe fddf bl 800124c - 800268e: eef0 6a40 vmov.f32 s13, s0 - 8002692: eeb0 7a60 vmov.f32 s14, s1 - 8002696: eef0 7a41 vmov.f32 s15, s2 - 800269a: edc7 6a0a vstr s13, [r7, #40] @ 0x28 - 800269e: ed87 7a0b vstr s14, [r7, #44] @ 0x2c - 80026a2: edc7 7a0c vstr s15, [r7, #48] @ 0x30 -} - 80026a6: 6ab9 ldr r1, [r7, #40] @ 0x28 - 80026a8: 6afa ldr r2, [r7, #44] @ 0x2c - 80026aa: 6b3b ldr r3, [r7, #48] @ 0x30 - 80026ac: ee06 1a90 vmov s13, r1 - 80026b0: ee07 2a10 vmov s14, r2 - 80026b4: ee07 3a90 vmov s15, r3 - 80026b8: eeb0 0a66 vmov.f32 s0, s13 - 80026bc: eef0 0a47 vmov.f32 s1, s14 - 80026c0: eeb0 1a67 vmov.f32 s2, s15 - 80026c4: 3740 adds r7, #64 @ 0x40 - 80026c6: 46bd mov sp, r7 - 80026c8: bd80 pop {r7, pc} - -080026ca : - * @param value Value. - * @param min Minimum value. - * @param max Maximum value. - * @return Value limited to maximum and minimum. - */ -static inline int Clamp(const int value, const int min, const int max) { - 80026ca: b480 push {r7} - 80026cc: b085 sub sp, #20 - 80026ce: af00 add r7, sp, #0 - 80026d0: 60f8 str r0, [r7, #12] - 80026d2: 60b9 str r1, [r7, #8] - 80026d4: 607a str r2, [r7, #4] - if (value < min) { - 80026d6: 68fa ldr r2, [r7, #12] - 80026d8: 68bb ldr r3, [r7, #8] - 80026da: 429a cmp r2, r3 - 80026dc: da01 bge.n 80026e2 - return min; - 80026de: 68bb ldr r3, [r7, #8] - 80026e0: e006 b.n 80026f0 - } - if (value > max) { - 80026e2: 68fa ldr r2, [r7, #12] - 80026e4: 687b ldr r3, [r7, #4] - 80026e6: 429a cmp r2, r3 - 80026e8: dd01 ble.n 80026ee - return max; - 80026ea: 687b ldr r3, [r7, #4] - 80026ec: e000 b.n 80026f0 - } - return value; - 80026ee: 68fb ldr r3, [r7, #12] -} - 80026f0: 4618 mov r0, r3 - 80026f2: 3714 adds r7, #20 - 80026f4: 46bd mov sp, r7 - 80026f6: f85d 7b04 ldr.w r7, [sp], #4 - 80026fa: 4770 bx lr - -080026fc : -/** - * @brief Returns the quaternion describing the sensor relative to the Earth. - * @param ahrs AHRS algorithm structure. - * @return Quaternion describing the sensor relative to the Earth. - */ -FusionQuaternion FusionAhrsGetQuaternion(const FusionAhrs *const ahrs) { - 80026fc: b490 push {r4, r7} - 80026fe: b08a sub sp, #40 @ 0x28 - 8002700: af00 add r7, sp, #0 - 8002702: 6178 str r0, [r7, #20] - return ahrs->quaternion; - 8002704: 697b ldr r3, [r7, #20] - 8002706: f107 0418 add.w r4, r7, #24 - 800270a: 3318 adds r3, #24 - 800270c: cb0f ldmia r3, {r0, r1, r2, r3} - 800270e: e884 000f stmia.w r4, {r0, r1, r2, r3} - 8002712: 69b8 ldr r0, [r7, #24] - 8002714: 69f9 ldr r1, [r7, #28] - 8002716: 6a3a ldr r2, [r7, #32] - 8002718: 6a7b ldr r3, [r7, #36] @ 0x24 - 800271a: ee06 0a10 vmov s12, r0 - 800271e: ee06 1a90 vmov s13, r1 - 8002722: ee07 2a10 vmov s14, r2 - 8002726: ee07 3a90 vmov s15, r3 -} - 800272a: eeb0 0a46 vmov.f32 s0, s12 - 800272e: eef0 0a66 vmov.f32 s1, s13 - 8002732: eeb0 1a47 vmov.f32 s2, s14 - 8002736: eef0 1a67 vmov.f32 s3, s15 - 800273a: 3728 adds r7, #40 @ 0x28 - 800273c: 46bd mov sp, r7 - 800273e: bc90 pop {r4, r7} - 8002740: 4770 bx lr - ... - -08002744 : -/** - * @brief Returns the AHRS algorithm internal states. - * @param ahrs AHRS algorithm structure. - * @return AHRS algorithm internal states. - */ -FusionAhrsInternalStates FusionAhrsGetInternalStates(const FusionAhrs *const ahrs) { - 8002744: b5b0 push {r4, r5, r7, lr} - 8002746: b088 sub sp, #32 - 8002748: af00 add r7, sp, #0 - 800274a: 6078 str r0, [r7, #4] - 800274c: 6039 str r1, [r7, #0] - const FusionAhrsInternalStates internalStates = { - .accelerationError = FusionRadiansToDegrees(FusionAsin(2.0f * FusionVectorMagnitude(ahrs->halfAccelerometerFeedback))), - 800274e: 683b ldr r3, [r7, #0] - 8002750: edd3 6a11 vldr s13, [r3, #68] @ 0x44 - 8002754: ed93 7a12 vldr s14, [r3, #72] @ 0x48 - 8002758: edd3 7a13 vldr s15, [r3, #76] @ 0x4c - 800275c: eeb0 0a66 vmov.f32 s0, s13 - 8002760: eef0 0a47 vmov.f32 s1, s14 - 8002764: eeb0 1a67 vmov.f32 s2, s15 - 8002768: f7fe fe76 bl 8001458 - 800276c: eef0 7a40 vmov.f32 s15, s0 - 8002770: ee77 7aa7 vadd.f32 s15, s15, s15 - 8002774: eeb0 0a67 vmov.f32 s0, s15 - 8002778: f7fe fbdc bl 8000f34 - 800277c: eef0 7a40 vmov.f32 s15, s0 - 8002780: eeb0 0a67 vmov.f32 s0, s15 - 8002784: f7fe fbc2 bl 8000f0c - 8002788: eef0 7a40 vmov.f32 s15, s0 - const FusionAhrsInternalStates internalStates = { - 800278c: edc7 7a02 vstr s15, [r7, #8] - .accelerometerIgnored = ahrs->accelerometerIgnored, - 8002790: 683b ldr r3, [r7, #0] - 8002792: f893 305c ldrb.w r3, [r3, #92] @ 0x5c - const FusionAhrsInternalStates internalStates = { - 8002796: 733b strb r3, [r7, #12] - .accelerationRecoveryTrigger = ahrs->settings.recoveryTriggerPeriod == 0 ? 0.0f : (float) ahrs->accelerationRecoveryTrigger / (float) ahrs->settings.recoveryTriggerPeriod, - 8002798: 683b ldr r3, [r7, #0] - 800279a: 695b ldr r3, [r3, #20] - 800279c: 2b00 cmp r3, #0 - 800279e: d00e beq.n 80027be - 80027a0: 683b ldr r3, [r7, #0] - 80027a2: 6e1b ldr r3, [r3, #96] @ 0x60 - 80027a4: ee07 3a90 vmov s15, r3 - 80027a8: eef8 6ae7 vcvt.f32.s32 s13, s15 - 80027ac: 683b ldr r3, [r7, #0] - 80027ae: 695b ldr r3, [r3, #20] - 80027b0: ee07 3a90 vmov s15, r3 - 80027b4: eeb8 7a67 vcvt.f32.u32 s14, s15 - 80027b8: eec6 7a87 vdiv.f32 s15, s13, s14 - 80027bc: e001 b.n 80027c2 - 80027be: eddf 7a27 vldr s15, [pc, #156] @ 800285c - const FusionAhrsInternalStates internalStates = { - 80027c2: edc7 7a04 vstr s15, [r7, #16] - .magneticError = FusionRadiansToDegrees(FusionAsin(2.0f * FusionVectorMagnitude(ahrs->halfMagnetometerFeedback))), - 80027c6: 683b ldr r3, [r7, #0] - 80027c8: edd3 6a14 vldr s13, [r3, #80] @ 0x50 - 80027cc: ed93 7a15 vldr s14, [r3, #84] @ 0x54 - 80027d0: edd3 7a16 vldr s15, [r3, #88] @ 0x58 - 80027d4: eeb0 0a66 vmov.f32 s0, s13 - 80027d8: eef0 0a47 vmov.f32 s1, s14 - 80027dc: eeb0 1a67 vmov.f32 s2, s15 - 80027e0: f7fe fe3a bl 8001458 - 80027e4: eef0 7a40 vmov.f32 s15, s0 - 80027e8: ee77 7aa7 vadd.f32 s15, s15, s15 - 80027ec: eeb0 0a67 vmov.f32 s0, s15 - 80027f0: f7fe fba0 bl 8000f34 - 80027f4: eef0 7a40 vmov.f32 s15, s0 - 80027f8: eeb0 0a67 vmov.f32 s0, s15 - 80027fc: f7fe fb86 bl 8000f0c - 8002800: eef0 7a40 vmov.f32 s15, s0 - const FusionAhrsInternalStates internalStates = { - 8002804: edc7 7a05 vstr s15, [r7, #20] - .magnetometerIgnored = ahrs->magnetometerIgnored, - 8002808: 683b ldr r3, [r7, #0] - 800280a: f893 3068 ldrb.w r3, [r3, #104] @ 0x68 - const FusionAhrsInternalStates internalStates = { - 800280e: 763b strb r3, [r7, #24] - .magneticRecoveryTrigger = ahrs->settings.recoveryTriggerPeriod == 0 ? 0.0f : (float) ahrs->magneticRecoveryTrigger / (float) ahrs->settings.recoveryTriggerPeriod, - 8002810: 683b ldr r3, [r7, #0] - 8002812: 695b ldr r3, [r3, #20] - 8002814: 2b00 cmp r3, #0 - 8002816: d00e beq.n 8002836 - 8002818: 683b ldr r3, [r7, #0] - 800281a: 6edb ldr r3, [r3, #108] @ 0x6c - 800281c: ee07 3a90 vmov s15, r3 - 8002820: eef8 6ae7 vcvt.f32.s32 s13, s15 - 8002824: 683b ldr r3, [r7, #0] - 8002826: 695b ldr r3, [r3, #20] - 8002828: ee07 3a90 vmov s15, r3 - 800282c: eeb8 7a67 vcvt.f32.u32 s14, s15 - 8002830: eec6 7a87 vdiv.f32 s15, s13, s14 - 8002834: e001 b.n 800283a - 8002836: eddf 7a09 vldr s15, [pc, #36] @ 800285c - const FusionAhrsInternalStates internalStates = { - 800283a: edc7 7a07 vstr s15, [r7, #28] - }; - return internalStates; - 800283e: 687b ldr r3, [r7, #4] - 8002840: 461d mov r5, r3 - 8002842: f107 0408 add.w r4, r7, #8 - 8002846: cc0f ldmia r4!, {r0, r1, r2, r3} - 8002848: c50f stmia r5!, {r0, r1, r2, r3} - 800284a: e894 0003 ldmia.w r4, {r0, r1} - 800284e: e885 0003 stmia.w r5, {r0, r1} -} - 8002852: 6878 ldr r0, [r7, #4] - 8002854: 3720 adds r7, #32 - 8002856: 46bd mov sp, r7 - 8002858: bdb0 pop {r4, r5, r7, pc} - 800285a: bf00 nop - 800285c: 00000000 .word 0x00000000 - -08002860 : -/** - * @brief Returns the AHRS algorithm flags. - * @param ahrs AHRS algorithm structure. - * @return AHRS algorithm flags. - */ -FusionAhrsFlags FusionAhrsGetFlags(const FusionAhrs *const ahrs) { - 8002860: b480 push {r7} - 8002862: b085 sub sp, #20 - 8002864: af00 add r7, sp, #0 - 8002866: 6078 str r0, [r7, #4] - const FusionAhrsFlags flags = { - .initialising = ahrs->initialising, - 8002868: 687b ldr r3, [r7, #4] - 800286a: f893 3034 ldrb.w r3, [r3, #52] @ 0x34 - const FusionAhrsFlags flags = { - 800286e: 723b strb r3, [r7, #8] - .angularRateRecovery = ahrs->angularRateRecovery, - 8002870: 687b ldr r3, [r7, #4] - 8002872: f893 3040 ldrb.w r3, [r3, #64] @ 0x40 - const FusionAhrsFlags flags = { - 8002876: 727b strb r3, [r7, #9] - .accelerationRecovery = ahrs->accelerationRecoveryTrigger > ahrs->accelerationRecoveryTimeout, - 8002878: 687b ldr r3, [r7, #4] - 800287a: 6e1a ldr r2, [r3, #96] @ 0x60 - 800287c: 687b ldr r3, [r7, #4] - 800287e: 6e5b ldr r3, [r3, #100] @ 0x64 - 8002880: 429a cmp r2, r3 - 8002882: bfcc ite gt - 8002884: 2301 movgt r3, #1 - 8002886: 2300 movle r3, #0 - 8002888: b2db uxtb r3, r3 - const FusionAhrsFlags flags = { - 800288a: 72bb strb r3, [r7, #10] - .magneticRecovery= ahrs->magneticRecoveryTrigger > ahrs->magneticRecoveryTimeout, - 800288c: 687b ldr r3, [r7, #4] - 800288e: 6eda ldr r2, [r3, #108] @ 0x6c - 8002890: 687b ldr r3, [r7, #4] - 8002892: 6f1b ldr r3, [r3, #112] @ 0x70 - 8002894: 429a cmp r2, r3 - 8002896: bfcc ite gt - 8002898: 2301 movgt r3, #1 - 800289a: 2300 movle r3, #0 - 800289c: b2db uxtb r3, r3 - const FusionAhrsFlags flags = { - 800289e: 72fb strb r3, [r7, #11] - }; - return flags; - 80028a0: 68bb ldr r3, [r7, #8] - 80028a2: 60fb str r3, [r7, #12] - 80028a4: 2300 movs r3, #0 - 80028a6: 7b3a ldrb r2, [r7, #12] - 80028a8: f362 0307 bfi r3, r2, #0, #8 - 80028ac: 7b7a ldrb r2, [r7, #13] - 80028ae: f362 230f bfi r3, r2, #8, #8 - 80028b2: 7bba ldrb r2, [r7, #14] - 80028b4: f362 4317 bfi r3, r2, #16, #8 - 80028b8: 7bfa ldrb r2, [r7, #15] - 80028ba: f362 631f bfi r3, r2, #24, #8 -} - 80028be: 4618 mov r0, r3 - 80028c0: 3714 adds r7, #20 - 80028c2: 46bd mov sp, r7 - 80028c4: f85d 7b04 ldr.w r7, [sp], #4 - 80028c8: 4770 bx lr - ... - -080028cc : - uint8_t val; - HAL_I2C_Mem_Read(&hi2c1, ICM20948_ADDR, reg, 1, &val, 1, HAL_MAX_DELAY); - return val; -} - -void write_register(uint8_t reg, uint8_t val) { - 80028cc: b580 push {r7, lr} - 80028ce: b086 sub sp, #24 - 80028d0: af04 add r7, sp, #16 - 80028d2: 4603 mov r3, r0 - 80028d4: 460a mov r2, r1 - 80028d6: 71fb strb r3, [r7, #7] - 80028d8: 4613 mov r3, r2 - 80028da: 71bb strb r3, [r7, #6] - HAL_I2C_Mem_Write(&hi2c1, ICM20948_ADDR, reg, 1, &val, 1, HAL_MAX_DELAY); - 80028dc: 79fb ldrb r3, [r7, #7] - 80028de: b29a uxth r2, r3 - 80028e0: f04f 33ff mov.w r3, #4294967295 - 80028e4: 9302 str r3, [sp, #8] - 80028e6: 2301 movs r3, #1 - 80028e8: 9301 str r3, [sp, #4] - 80028ea: 1dbb adds r3, r7, #6 - 80028ec: 9300 str r3, [sp, #0] - 80028ee: 2301 movs r3, #1 - 80028f0: 21d2 movs r1, #210 @ 0xd2 - 80028f2: 4803 ldr r0, [pc, #12] @ (8002900 ) - 80028f4: f002 f86e bl 80049d4 -} - 80028f8: bf00 nop - 80028fa: 3708 adds r7, #8 - 80028fc: 46bd mov sp, r7 - 80028fe: bd80 pop {r7, pc} - 8002900: 200001f0 .word 0x200001f0 - -08002904 : - -void icm20948_select_bank(uint8_t bank) { - 8002904: b580 push {r7, lr} - 8002906: b082 sub sp, #8 - 8002908: af00 add r7, sp, #0 - 800290a: 4603 mov r3, r0 - 800290c: 71fb strb r3, [r7, #7] - write_register(0x7F, bank << 4); // REG_BANK_SEL (0x7F) - 800290e: 79fb ldrb r3, [r7, #7] - 8002910: 011b lsls r3, r3, #4 - 8002912: b2db uxtb r3, r3 - 8002914: 4619 mov r1, r3 - 8002916: 207f movs r0, #127 @ 0x7f - 8002918: f7ff ffd8 bl 80028cc -} - 800291c: bf00 nop - 800291e: 3708 adds r7, #8 - 8002920: 46bd mov sp, r7 - 8002922: bd80 pop {r7, pc} - -08002924 : - -void icm20948_init(void) { - 8002924: b580 push {r7, lr} - 8002926: af00 add r7, sp, #0 - icm20948_select_bank(0); // BANK 0 - 8002928: 2000 movs r0, #0 - 800292a: f7ff ffeb bl 8002904 - write_register(0x06, 0x01); // PWR_MGMT_1: reset - 800292e: 2101 movs r1, #1 - 8002930: 2006 movs r0, #6 - 8002932: f7ff ffcb bl 80028cc + // Format pixel RGB565 16-bit + GC9A01_WriteCommand(GC9A01_COLMOD); + 8000d7c: 203a movs r0, #58 @ 0x3a + 8000d7e: f7ff ff4b bl 8000c18 + GC9A01_WriteData(0x55); // 16 bits/pixel + 8000d82: 2055 movs r0, #85 @ 0x55 + 8000d84: f7ff ff62 bl 8000c4c HAL_Delay(10); - 8002936: 200a movs r0, #10 - 8002938: f001 fbfc bl 8004134 - write_register(0x06, 0x01); // Clock source auto - 800293c: 2101 movs r1, #1 - 800293e: 2006 movs r0, #6 - 8002940: f7ff ffc4 bl 80028cc + 8000d88: 200a movs r0, #10 + 8000d8a: f000 fba7 bl 80014dc - icm20948_select_bank(2); // BANK 2 - 8002944: 2002 movs r0, #2 - 8002946: f7ff ffdd bl 8002904 - // write_register(0x14, 0x00); // ACCEL_CONFIG: ±2g - write_register(0x14, 0x04); // ACCEL_CONFIG : ±8g (bits 2:1 = 10) - 800294a: 2104 movs r1, #4 - 800294c: 2014 movs r0, #20 - 800294e: f7ff ffbd bl 80028cc + // Memory Access Control : rotation / orientation + GC9A01_WriteCommand(GC9A01_MADCTL); + 8000d8e: 2036 movs r0, #54 @ 0x36 + 8000d90: f7ff ff42 bl 8000c18 + GC9A01_WriteData(0x00); // rotation normale, ajuste si besoin + 8000d94: 2000 movs r0, #0 + 8000d96: f7ff ff59 bl 8000c4c - icm20948_select_bank(0); // Revenir en BANK 0 pour lecture - 8002952: 2000 movs r0, #0 - 8002954: f7ff ffd6 bl 8002904 -} - 8002958: bf00 nop - 800295a: bd80 pop {r7, pc} + // Activation de l'écran + GC9A01_WriteCommand(GC9A01_INVON); // inversion couleurs (souvent requis) + 8000d9a: 2021 movs r0, #33 @ 0x21 + 8000d9c: f7ff ff3c bl 8000c18 + HAL_Delay(10); + 8000da0: 200a movs r0, #10 + 8000da2: f000 fb9b bl 80014dc -0800295c : + GC9A01_WriteCommand(GC9A01_NORON); // mode normal on + 8000da6: 2013 movs r0, #19 + 8000da8: f7ff ff36 bl 8000c18 + HAL_Delay(10); + 8000dac: 200a movs r0, #10 + 8000dae: f000 fb95 bl 80014dc -void icm20948_read_accel(float *ax, float *ay, float *az) { - 800295c: b580 push {r7, lr} - 800295e: b08c sub sp, #48 @ 0x30 - 8002960: af04 add r7, sp, #16 - 8002962: 60f8 str r0, [r7, #12] - 8002964: 60b9 str r1, [r7, #8] - 8002966: 607a str r2, [r7, #4] - uint8_t data[6]; - HAL_I2C_Mem_Read(&hi2c1, ICM20948_ADDR, 0x2D, 1, data, 6, HAL_MAX_DELAY); - 8002968: f04f 33ff mov.w r3, #4294967295 - 800296c: 9302 str r3, [sp, #8] - 800296e: 2306 movs r3, #6 - 8002970: 9301 str r3, [sp, #4] - 8002972: f107 0314 add.w r3, r7, #20 - 8002976: 9300 str r3, [sp, #0] - 8002978: 2301 movs r3, #1 - 800297a: 222d movs r2, #45 @ 0x2d - 800297c: 21d2 movs r1, #210 @ 0xd2 - 800297e: 4823 ldr r0, [pc, #140] @ (8002a0c ) - 8002980: f002 f93c bl 8004bfc - int16_t x = (data[0] << 8) | data[1]; - 8002984: 7d3b ldrb r3, [r7, #20] - 8002986: b21b sxth r3, r3 - 8002988: 021b lsls r3, r3, #8 - 800298a: b21a sxth r2, r3 - 800298c: 7d7b ldrb r3, [r7, #21] - 800298e: b21b sxth r3, r3 - 8002990: 4313 orrs r3, r2 - 8002992: 83fb strh r3, [r7, #30] - int16_t y = (data[2] << 8) | data[3]; - 8002994: 7dbb ldrb r3, [r7, #22] - 8002996: b21b sxth r3, r3 - 8002998: 021b lsls r3, r3, #8 - 800299a: b21a sxth r2, r3 - 800299c: 7dfb ldrb r3, [r7, #23] - 800299e: b21b sxth r3, r3 - 80029a0: 4313 orrs r3, r2 - 80029a2: 83bb strh r3, [r7, #28] - int16_t z = (data[4] << 8) | data[5]; - 80029a4: 7e3b ldrb r3, [r7, #24] - 80029a6: b21b sxth r3, r3 - 80029a8: 021b lsls r3, r3, #8 - 80029aa: b21a sxth r2, r3 - 80029ac: 7e7b ldrb r3, [r7, #25] - 80029ae: b21b sxth r3, r3 - 80029b0: 4313 orrs r3, r2 - 80029b2: 837b strh r3, [r7, #26] - //*ax = (float)x / 16384.0f; - //*ay = (float)y / 16384.0f; - //*az = (float)z / 16384.0f; - *ax = (float)x / 4096.0f; - 80029b4: f9b7 301e ldrsh.w r3, [r7, #30] - 80029b8: ee07 3a90 vmov s15, r3 - 80029bc: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 80029c0: eddf 6a13 vldr s13, [pc, #76] @ 8002a10 - 80029c4: eec7 7a26 vdiv.f32 s15, s14, s13 - 80029c8: 68fb ldr r3, [r7, #12] - 80029ca: edc3 7a00 vstr s15, [r3] - *ay = (float)y / 4096.0f; - 80029ce: f9b7 301c ldrsh.w r3, [r7, #28] - 80029d2: ee07 3a90 vmov s15, r3 - 80029d6: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 80029da: eddf 6a0d vldr s13, [pc, #52] @ 8002a10 - 80029de: eec7 7a26 vdiv.f32 s15, s14, s13 - 80029e2: 68bb ldr r3, [r7, #8] - 80029e4: edc3 7a00 vstr s15, [r3] - *az = (float)z / 4096.0f; - 80029e8: f9b7 301a ldrsh.w r3, [r7, #26] - 80029ec: ee07 3a90 vmov s15, r3 - 80029f0: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 80029f4: eddf 6a06 vldr s13, [pc, #24] @ 8002a10 - 80029f8: eec7 7a26 vdiv.f32 s15, s14, s13 - 80029fc: 687b ldr r3, [r7, #4] - 80029fe: edc3 7a00 vstr s15, [r3] + GC9A01_WriteCommand(GC9A01_DISPON); // allume l'écran + 8000db2: 2029 movs r0, #41 @ 0x29 + 8000db4: f7ff ff30 bl 8000c18 + HAL_Delay(100); + 8000db8: 2064 movs r0, #100 @ 0x64 + 8000dba: f000 fb8f bl 80014dc } - 8002a02: bf00 nop - 8002a04: 3720 adds r7, #32 - 8002a06: 46bd mov sp, r7 - 8002a08: bd80 pop {r7, pc} - 8002a0a: bf00 nop - 8002a0c: 200001f0 .word 0x200001f0 - 8002a10: 45800000 .word 0x45800000 + 8000dbe: bf00 nop + 8000dc0: 3708 adds r7, #8 + 8000dc2: 46bd mov sp, r7 + 8000dc4: bd80 pop {r7, pc} + 8000dc6: bf00 nop + 8000dc8: 200001f0 .word 0x200001f0 -08002a14 : +08000dcc : -void icm20948_read_gyro(float *gx, float *gy, float *gz) { - 8002a14: b580 push {r7, lr} - 8002a16: b08c sub sp, #48 @ 0x30 - 8002a18: af04 add r7, sp, #16 - 8002a1a: 60f8 str r0, [r7, #12] - 8002a1c: 60b9 str r1, [r7, #8] - 8002a1e: 607a str r2, [r7, #4] - uint8_t data[6]; - icm20948_select_bank(0); - 8002a20: 2000 movs r0, #0 - 8002a22: f7ff ff6f bl 8002904 - HAL_I2C_Mem_Read(&hi2c1, ICM20948_ADDR, 0x33, 1, data, 6, HAL_MAX_DELAY); - 8002a26: f04f 33ff mov.w r3, #4294967295 - 8002a2a: 9302 str r3, [sp, #8] - 8002a2c: 2306 movs r3, #6 - 8002a2e: 9301 str r3, [sp, #4] - 8002a30: f107 0314 add.w r3, r7, #20 - 8002a34: 9300 str r3, [sp, #0] - 8002a36: 2301 movs r3, #1 - 8002a38: 2233 movs r2, #51 @ 0x33 - 8002a3a: 21d2 movs r1, #210 @ 0xd2 - 8002a3c: 4822 ldr r0, [pc, #136] @ (8002ac8 ) - 8002a3e: f002 f8dd bl 8004bfc - int16_t x = (data[0] << 8) | data[1]; - 8002a42: 7d3b ldrb r3, [r7, #20] - 8002a44: b21b sxth r3, r3 - 8002a46: 021b lsls r3, r3, #8 - 8002a48: b21a sxth r2, r3 - 8002a4a: 7d7b ldrb r3, [r7, #21] - 8002a4c: b21b sxth r3, r3 - 8002a4e: 4313 orrs r3, r2 - 8002a50: 83fb strh r3, [r7, #30] - int16_t y = (data[2] << 8) | data[3]; - 8002a52: 7dbb ldrb r3, [r7, #22] - 8002a54: b21b sxth r3, r3 - 8002a56: 021b lsls r3, r3, #8 - 8002a58: b21a sxth r2, r3 - 8002a5a: 7dfb ldrb r3, [r7, #23] - 8002a5c: b21b sxth r3, r3 - 8002a5e: 4313 orrs r3, r2 - 8002a60: 83bb strh r3, [r7, #28] - int16_t z = (data[4] << 8) | data[5]; - 8002a62: 7e3b ldrb r3, [r7, #24] - 8002a64: b21b sxth r3, r3 - 8002a66: 021b lsls r3, r3, #8 - 8002a68: b21a sxth r2, r3 - 8002a6a: 7e7b ldrb r3, [r7, #25] - 8002a6c: b21b sxth r3, r3 - 8002a6e: 4313 orrs r3, r2 - 8002a70: 837b strh r3, [r7, #26] - *gx = (float)x / 131.0f; // sensibilité typique ±250 dps - 8002a72: f9b7 301e ldrsh.w r3, [r7, #30] - 8002a76: ee07 3a90 vmov s15, r3 - 8002a7a: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 8002a7e: eddf 6a13 vldr s13, [pc, #76] @ 8002acc - 8002a82: eec7 7a26 vdiv.f32 s15, s14, s13 - 8002a86: 68fb ldr r3, [r7, #12] - 8002a88: edc3 7a00 vstr s15, [r3] - *gy = (float)y / 131.0f; - 8002a8c: f9b7 301c ldrsh.w r3, [r7, #28] - 8002a90: ee07 3a90 vmov s15, r3 - 8002a94: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 8002a98: eddf 6a0c vldr s13, [pc, #48] @ 8002acc - 8002a9c: eec7 7a26 vdiv.f32 s15, s14, s13 - 8002aa0: 68bb ldr r3, [r7, #8] - 8002aa2: edc3 7a00 vstr s15, [r3] - *gz = (float)z / 131.0f; - 8002aa6: f9b7 301a ldrsh.w r3, [r7, #26] - 8002aaa: ee07 3a90 vmov s15, r3 - 8002aae: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 8002ab2: eddf 6a06 vldr s13, [pc, #24] @ 8002acc - 8002ab6: eec7 7a26 vdiv.f32 s15, s14, s13 - 8002aba: 687b ldr r3, [r7, #4] - 8002abc: edc3 7a00 vstr s15, [r3] + +void GC9A01_Reset(void) { + 8000dcc: b580 push {r7, lr} + 8000dce: af00 add r7, sp, #0 + HAL_GPIO_WritePin(GC9A01_RST_GPIO_Port, GC9A01_RST_Pin, GPIO_PIN_RESET); + 8000dd0: 2200 movs r2, #0 + 8000dd2: 2104 movs r1, #4 + 8000dd4: 4807 ldr r0, [pc, #28] @ (8000df4 ) + 8000dd6: f000 fe05 bl 80019e4 + HAL_Delay(10); + 8000dda: 200a movs r0, #10 + 8000ddc: f000 fb7e bl 80014dc + HAL_GPIO_WritePin(GC9A01_RST_GPIO_Port, GC9A01_RST_Pin, GPIO_PIN_SET); + 8000de0: 2201 movs r2, #1 + 8000de2: 2104 movs r1, #4 + 8000de4: 4803 ldr r0, [pc, #12] @ (8000df4 ) + 8000de6: f000 fdfd bl 80019e4 + HAL_Delay(10); + 8000dea: 200a movs r0, #10 + 8000dec: f000 fb76 bl 80014dc } - 8002ac0: bf00 nop - 8002ac2: 3720 adds r7, #32 - 8002ac4: 46bd mov sp, r7 - 8002ac6: bd80 pop {r7, pc} - 8002ac8: 200001f0 .word 0x200001f0 - 8002acc: 43030000 .word 0x43030000 + 8000df0: bf00 nop + 8000df2: bd80 pop {r7, pc} + 8000df4: 48000400 .word 0x48000400 -08002ad0 : - // Exemples de setup (registres slave 0, adresse, etc.) - // ... - icm20948_select_bank(0); -} +08000df8 : -void icm20948_read_mag(float *mx, float *my, float *mz) { - 8002ad0: b580 push {r7, lr} - 8002ad2: b08c sub sp, #48 @ 0x30 - 8002ad4: af04 add r7, sp, #16 - 8002ad6: 60f8 str r0, [r7, #12] - 8002ad8: 60b9 str r1, [r7, #8] - 8002ada: 607a str r2, [r7, #4] - uint8_t data[6]; - // Lecture des registres magnéto via I2C Master - // Par défaut les données du magnétomètre sont relayées en registres USER_MAG_DATA_X/Y/Z - // ou on doit lire via I2C Master - // Exemple simplifié : - HAL_I2C_Mem_Read(&hi2c1, ICM20948_ADDR, 0x31, 1, data, 6, HAL_MAX_DELAY); - 8002adc: f04f 33ff mov.w r3, #4294967295 - 8002ae0: 9302 str r3, [sp, #8] - 8002ae2: 2306 movs r3, #6 - 8002ae4: 9301 str r3, [sp, #4] - 8002ae6: f107 0314 add.w r3, r7, #20 - 8002aea: 9300 str r3, [sp, #0] - 8002aec: 2301 movs r3, #1 - 8002aee: 2231 movs r2, #49 @ 0x31 - 8002af0: 21d2 movs r1, #210 @ 0xd2 - 8002af2: 4823 ldr r0, [pc, #140] @ (8002b80 ) - 8002af4: f002 f882 bl 8004bfc - int16_t x = (data[1] << 8) | data[0]; // Attention à l’ordre des octets pour AK09916 - 8002af8: 7d7b ldrb r3, [r7, #21] - 8002afa: b21b sxth r3, r3 - 8002afc: 021b lsls r3, r3, #8 - 8002afe: b21a sxth r2, r3 - 8002b00: 7d3b ldrb r3, [r7, #20] - 8002b02: b21b sxth r3, r3 - 8002b04: 4313 orrs r3, r2 - 8002b06: 83fb strh r3, [r7, #30] - int16_t y = (data[3] << 8) | data[2]; - 8002b08: 7dfb ldrb r3, [r7, #23] - 8002b0a: b21b sxth r3, r3 - 8002b0c: 021b lsls r3, r3, #8 - 8002b0e: b21a sxth r2, r3 - 8002b10: 7dbb ldrb r3, [r7, #22] - 8002b12: b21b sxth r3, r3 - 8002b14: 4313 orrs r3, r2 - 8002b16: 83bb strh r3, [r7, #28] - int16_t z = (data[5] << 8) | data[4]; - 8002b18: 7e7b ldrb r3, [r7, #25] - 8002b1a: b21b sxth r3, r3 - 8002b1c: 021b lsls r3, r3, #8 - 8002b1e: b21a sxth r2, r3 - 8002b20: 7e3b ldrb r3, [r7, #24] - 8002b22: b21b sxth r3, r3 - 8002b24: 4313 orrs r3, r2 - 8002b26: 837b strh r3, [r7, #26] - *mx = (float)x * 0.15f; // conversion en µT (selon datasheet) - 8002b28: f9b7 301e ldrsh.w r3, [r7, #30] - 8002b2c: ee07 3a90 vmov s15, r3 - 8002b30: eef8 7ae7 vcvt.f32.s32 s15, s15 - 8002b34: ed9f 7a13 vldr s14, [pc, #76] @ 8002b84 - 8002b38: ee67 7a87 vmul.f32 s15, s15, s14 - 8002b3c: 68fb ldr r3, [r7, #12] - 8002b3e: edc3 7a00 vstr s15, [r3] - *my = (float)y * 0.15f; - 8002b42: f9b7 301c ldrsh.w r3, [r7, #28] - 8002b46: ee07 3a90 vmov s15, r3 - 8002b4a: eef8 7ae7 vcvt.f32.s32 s15, s15 - 8002b4e: ed9f 7a0d vldr s14, [pc, #52] @ 8002b84 - 8002b52: ee67 7a87 vmul.f32 s15, s15, s14 - 8002b56: 68bb ldr r3, [r7, #8] - 8002b58: edc3 7a00 vstr s15, [r3] - *mz = (float)z * 0.15f; - 8002b5c: f9b7 301a ldrsh.w r3, [r7, #26] - 8002b60: ee07 3a90 vmov s15, r3 - 8002b64: eef8 7ae7 vcvt.f32.s32 s15, s15 - 8002b68: ed9f 7a06 vldr s14, [pc, #24] @ 8002b84 - 8002b6c: ee67 7a87 vmul.f32 s15, s15, s14 - 8002b70: 687b ldr r3, [r7, #4] - 8002b72: edc3 7a00 vstr s15, [r3] -} - 8002b76: bf00 nop - 8002b78: 3720 adds r7, #32 - 8002b7a: 46bd mov sp, r7 - 8002b7c: bd80 pop {r7, pc} - 8002b7e: bf00 nop - 8002b80: 200001f0 .word 0x200001f0 - 8002b84: 3e19999a .word 0x3e19999a - -08002b88 : - -void lcd_send_cmd(uint8_t cmd); -void lcd_send_data(uint8_t data); -void lcd_send(uint8_t data, uint8_t mode); - -void lcd_init(void) { - 8002b88: b580 push {r7, lr} - 8002b8a: af00 add r7, sp, #0 - HAL_Delay(50); - 8002b8c: 2032 movs r0, #50 @ 0x32 - 8002b8e: f001 fad1 bl 8004134 - lcd_send_cmd(0x33); - 8002b92: 2033 movs r0, #51 @ 0x33 - 8002b94: f000 f853 bl 8002c3e - lcd_send_cmd(0x32); - 8002b98: 2032 movs r0, #50 @ 0x32 - 8002b9a: f000 f850 bl 8002c3e - lcd_send_cmd(0x28); - 8002b9e: 2028 movs r0, #40 @ 0x28 - 8002ba0: f000 f84d bl 8002c3e - lcd_send_cmd(0x0C); - 8002ba4: 200c movs r0, #12 - 8002ba6: f000 f84a bl 8002c3e - lcd_send_cmd(0x06); - 8002baa: 2006 movs r0, #6 - 8002bac: f000 f847 bl 8002c3e - lcd_send_cmd(0x01); - 8002bb0: 2001 movs r0, #1 - 8002bb2: f000 f844 bl 8002c3e - HAL_Delay(5); - 8002bb6: 2005 movs r0, #5 - 8002bb8: f001 fabc bl 8004134 -} - 8002bbc: bf00 nop - 8002bbe: bd80 pop {r7, pc} - -08002bc0 : - -void lcd_clear(void) { - 8002bc0: b580 push {r7, lr} - 8002bc2: af00 add r7, sp, #0 - lcd_send_cmd(0x01); - 8002bc4: 2001 movs r0, #1 - 8002bc6: f000 f83a bl 8002c3e - HAL_Delay(2); - 8002bca: 2002 movs r0, #2 - 8002bcc: f001 fab2 bl 8004134 -} - 8002bd0: bf00 nop - 8002bd2: bd80 pop {r7, pc} - -08002bd4 : - -void lcd_set_cursor(uint8_t row, uint8_t col) { - 8002bd4: b580 push {r7, lr} - 8002bd6: b084 sub sp, #16 - 8002bd8: af00 add r7, sp, #0 - 8002bda: 4603 mov r3, r0 - 8002bdc: 460a mov r2, r1 - 8002bde: 71fb strb r3, [r7, #7] - 8002be0: 4613 mov r3, r2 - 8002be2: 71bb strb r3, [r7, #6] - const uint8_t row_offsets[] = {0x00, 0x40, 0x14, 0x54}; - 8002be4: 4b0a ldr r3, [pc, #40] @ (8002c10 ) - 8002be6: 60fb str r3, [r7, #12] - lcd_send_cmd(0x80 | (col + row_offsets[row])); - 8002be8: 79fb ldrb r3, [r7, #7] - 8002bea: 3310 adds r3, #16 - 8002bec: 443b add r3, r7 - 8002bee: f813 2c04 ldrb.w r2, [r3, #-4] - 8002bf2: 79bb ldrb r3, [r7, #6] - 8002bf4: 4413 add r3, r2 - 8002bf6: b2db uxtb r3, r3 - 8002bf8: b25b sxtb r3, r3 - 8002bfa: f063 037f orn r3, r3, #127 @ 0x7f - 8002bfe: b25b sxtb r3, r3 - 8002c00: b2db uxtb r3, r3 - 8002c02: 4618 mov r0, r3 - 8002c04: f000 f81b bl 8002c3e -} - 8002c08: bf00 nop - 8002c0a: 3710 adds r7, #16 - 8002c0c: 46bd mov sp, r7 - 8002c0e: bd80 pop {r7, pc} - 8002c10: 54144000 .word 0x54144000 - -08002c14 : - -void lcd_print(const char *str) { - 8002c14: b580 push {r7, lr} - 8002c16: b082 sub sp, #8 - 8002c18: af00 add r7, sp, #0 - 8002c1a: 6078 str r0, [r7, #4] - while (*str) { - 8002c1c: e006 b.n 8002c2c - lcd_send_data((uint8_t)(*str++)); - 8002c1e: 687b ldr r3, [r7, #4] - 8002c20: 1c5a adds r2, r3, #1 - 8002c22: 607a str r2, [r7, #4] - 8002c24: 781b ldrb r3, [r3, #0] - 8002c26: 4618 mov r0, r3 - 8002c28: f000 f817 bl 8002c5a - while (*str) { - 8002c2c: 687b ldr r3, [r7, #4] - 8002c2e: 781b ldrb r3, [r3, #0] - 8002c30: 2b00 cmp r3, #0 - 8002c32: d1f4 bne.n 8002c1e - } -} - 8002c34: bf00 nop - 8002c36: bf00 nop - 8002c38: 3708 adds r7, #8 - 8002c3a: 46bd mov sp, r7 - 8002c3c: bd80 pop {r7, pc} - -08002c3e : - -void lcd_send_cmd(uint8_t cmd) { - 8002c3e: b580 push {r7, lr} - 8002c40: b082 sub sp, #8 - 8002c42: af00 add r7, sp, #0 - 8002c44: 4603 mov r3, r0 - 8002c46: 71fb strb r3, [r7, #7] - lcd_send(cmd, 0); - 8002c48: 79fb ldrb r3, [r7, #7] - 8002c4a: 2100 movs r1, #0 - 8002c4c: 4618 mov r0, r3 - 8002c4e: f000 f813 bl 8002c78 -} - 8002c52: bf00 nop - 8002c54: 3708 adds r7, #8 - 8002c56: 46bd mov sp, r7 - 8002c58: bd80 pop {r7, pc} - -08002c5a : - -void lcd_send_data(uint8_t data) { - 8002c5a: b580 push {r7, lr} - 8002c5c: b082 sub sp, #8 - 8002c5e: af00 add r7, sp, #0 - 8002c60: 4603 mov r3, r0 - 8002c62: 71fb strb r3, [r7, #7] - lcd_send(data, 1); - 8002c64: 79fb ldrb r3, [r7, #7] - 8002c66: 2101 movs r1, #1 - 8002c68: 4618 mov r0, r3 - 8002c6a: f000 f805 bl 8002c78 -} - 8002c6e: bf00 nop - 8002c70: 3708 adds r7, #8 - 8002c72: 46bd mov sp, r7 - 8002c74: bd80 pop {r7, pc} +void GC9A01_DisplayOn(void) { GC9A01_WriteCommand(GC9A01_DISPON); } + 8000df8: b580 push {r7, lr} + 8000dfa: af00 add r7, sp, #0 + 8000dfc: 2029 movs r0, #41 @ 0x29 + 8000dfe: f7ff ff0b bl 8000c18 + 8000e02: bf00 nop + 8000e04: bd80 pop {r7, pc} ... -08002c78 : - -void lcd_send(uint8_t data, uint8_t mode) { - 8002c78: b580 push {r7, lr} - 8002c7a: b086 sub sp, #24 - 8002c7c: af02 add r7, sp, #8 - 8002c7e: 4603 mov r3, r0 - 8002c80: 460a mov r2, r1 - 8002c82: 71fb strb r3, [r7, #7] - 8002c84: 4613 mov r3, r2 - 8002c86: 71bb strb r3, [r7, #6] - uint8_t high = (data & 0xF0) | LCD_BACKLIGHT | (mode ? 0x01 : 0); - 8002c88: f997 3007 ldrsb.w r3, [r7, #7] - 8002c8c: f023 030f bic.w r3, r3, #15 - 8002c90: b25b sxtb r3, r3 - 8002c92: f043 0308 orr.w r3, r3, #8 - 8002c96: b25a sxtb r2, r3 - 8002c98: 79bb ldrb r3, [r7, #6] - 8002c9a: 2b00 cmp r3, #0 - 8002c9c: bf14 ite ne - 8002c9e: 2301 movne r3, #1 - 8002ca0: 2300 moveq r3, #0 - 8002ca2: b2db uxtb r3, r3 - 8002ca4: b25b sxtb r3, r3 - 8002ca6: 4313 orrs r3, r2 - 8002ca8: b25b sxtb r3, r3 - 8002caa: 73fb strb r3, [r7, #15] - uint8_t low = ((data << 4) & 0xF0) | LCD_BACKLIGHT | (mode ? 0x01 : 0); - 8002cac: f997 3007 ldrsb.w r3, [r7, #7] - 8002cb0: 011b lsls r3, r3, #4 - 8002cb2: b25b sxtb r3, r3 - 8002cb4: f043 0308 orr.w r3, r3, #8 - 8002cb8: b25a sxtb r2, r3 - 8002cba: 79bb ldrb r3, [r7, #6] - 8002cbc: 2b00 cmp r3, #0 - 8002cbe: bf14 ite ne - 8002cc0: 2301 movne r3, #1 - 8002cc2: 2300 moveq r3, #0 - 8002cc4: b2db uxtb r3, r3 - 8002cc6: b25b sxtb r3, r3 - 8002cc8: 4313 orrs r3, r2 - 8002cca: b25b sxtb r3, r3 - 8002ccc: 73bb strb r3, [r7, #14] - - uint8_t data_arr[4] = { - 8002cce: 7bfb ldrb r3, [r7, #15] - 8002cd0: f043 0304 orr.w r3, r3, #4 - 8002cd4: b2db uxtb r3, r3 - 8002cd6: 723b strb r3, [r7, #8] - 8002cd8: 7bfb ldrb r3, [r7, #15] - 8002cda: 727b strb r3, [r7, #9] - 8002cdc: 7bbb ldrb r3, [r7, #14] - 8002cde: f043 0304 orr.w r3, r3, #4 - 8002ce2: b2db uxtb r3, r3 - 8002ce4: 72bb strb r3, [r7, #10] - 8002ce6: 7bbb ldrb r3, [r7, #14] - 8002ce8: 72fb strb r3, [r7, #11] - high | LCD_ENABLE, high, - low | LCD_ENABLE, low - }; - HAL_I2C_Master_Transmit(&hi2c1, LCD_ADDR, data_arr, 4, HAL_MAX_DELAY); - 8002cea: f107 0208 add.w r2, r7, #8 - 8002cee: f04f 33ff mov.w r3, #4294967295 - 8002cf2: 9300 str r3, [sp, #0] - 8002cf4: 2304 movs r3, #4 - 8002cf6: 214e movs r1, #78 @ 0x4e - 8002cf8: 4803 ldr r0, [pc, #12] @ (8002d08 ) - 8002cfa: f001 fd53 bl 80047a4 - 8002cfe: bf00 nop - 8002d00: 3710 adds r7, #16 - 8002d02: 46bd mov sp, r7 - 8002d04: bd80 pop {r7, pc} - 8002d06: bf00 nop - 8002d08: 200001f0 .word 0x200001f0 - -08002d0c : -/** - * @brief Converts radians to degrees. - * @param radians Radians. - * @return Degrees. - */ -static inline float FusionRadiansToDegrees(const float radians) { - 8002d0c: b480 push {r7} - 8002d0e: b083 sub sp, #12 - 8002d10: af00 add r7, sp, #0 - 8002d12: ed87 0a01 vstr s0, [r7, #4] - return radians * (180.0f / (float) M_PI); - 8002d16: edd7 7a01 vldr s15, [r7, #4] - 8002d1a: ed9f 7a05 vldr s14, [pc, #20] @ 8002d30 - 8002d1e: ee67 7a87 vmul.f32 s15, s15, s14 -} - 8002d22: eeb0 0a67 vmov.f32 s0, s15 - 8002d26: 370c adds r7, #12 - 8002d28: 46bd mov sp, r7 - 8002d2a: f85d 7b04 ldr.w r7, [sp], #4 - 8002d2e: 4770 bx lr - 8002d30: 42652ee0 .word 0x42652ee0 - -08002d34 : -/** - * @brief Returns the arc sine of the value. - * @param value Value. - * @return Arc sine of the value. - */ -static inline float FusionAsin(const float value) { - 8002d34: b580 push {r7, lr} - 8002d36: b082 sub sp, #8 - 8002d38: af00 add r7, sp, #0 - 8002d3a: ed87 0a01 vstr s0, [r7, #4] - if (value <= -1.0f) { - 8002d3e: edd7 7a01 vldr s15, [r7, #4] - 8002d42: eebf 7a00 vmov.f32 s14, #240 @ 0xbf800000 -1.0 - 8002d46: eef4 7ac7 vcmpe.f32 s15, s14 - 8002d4a: eef1 fa10 vmrs APSR_nzcv, fpscr - 8002d4e: d802 bhi.n 8002d56 - return (float) M_PI / -2.0f; - 8002d50: eddf 7a0c vldr s15, [pc, #48] @ 8002d84 - 8002d54: e011 b.n 8002d7a +08000e08 : + case 3: GC9A01_WriteData(0xA8); break; } - if (value >= 1.0f) { - 8002d56: edd7 7a01 vldr s15, [r7, #4] - 8002d5a: eeb7 7a00 vmov.f32 s14, #112 @ 0x3f800000 1.0 - 8002d5e: eef4 7ac7 vcmpe.f32 s15, s14 - 8002d62: eef1 fa10 vmrs APSR_nzcv, fpscr - 8002d66: db02 blt.n 8002d6e - return (float) M_PI / 2.0f; - 8002d68: eddf 7a07 vldr s15, [pc, #28] @ 8002d88 - 8002d6c: e005 b.n 8002d7a +} + +// Optimisé : envoie des blocs de pixels pour remplir un rectangle +void GC9A01_FillRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { + 8000e08: b590 push {r4, r7, lr} + 8000e0a: b087 sub sp, #28 + 8000e0c: af00 add r7, sp, #0 + 8000e0e: 4604 mov r4, r0 + 8000e10: 4608 mov r0, r1 + 8000e12: 4611 mov r1, r2 + 8000e14: 461a mov r2, r3 + 8000e16: 4623 mov r3, r4 + 8000e18: 80fb strh r3, [r7, #6] + 8000e1a: 4603 mov r3, r0 + 8000e1c: 80bb strh r3, [r7, #4] + 8000e1e: 460b mov r3, r1 + 8000e20: 807b strh r3, [r7, #2] + 8000e22: 4613 mov r3, r2 + 8000e24: 803b strh r3, [r7, #0] + if (x >= GC9A01_WIDTH || y >= GC9A01_HEIGHT) return; + 8000e26: 88fb ldrh r3, [r7, #6] + 8000e28: 2bef cmp r3, #239 @ 0xef + 8000e2a: d866 bhi.n 8000efa + 8000e2c: 88bb ldrh r3, [r7, #4] + 8000e2e: 2bef cmp r3, #239 @ 0xef + 8000e30: d863 bhi.n 8000efa + if (x + width > GC9A01_WIDTH) width = GC9A01_WIDTH - x; + 8000e32: 88fa ldrh r2, [r7, #6] + 8000e34: 887b ldrh r3, [r7, #2] + 8000e36: 4413 add r3, r2 + 8000e38: 2bf0 cmp r3, #240 @ 0xf0 + 8000e3a: dd03 ble.n 8000e44 + 8000e3c: 88fb ldrh r3, [r7, #6] + 8000e3e: f1c3 03f0 rsb r3, r3, #240 @ 0xf0 + 8000e42: 807b strh r3, [r7, #2] + if (y + height > GC9A01_HEIGHT) height = GC9A01_HEIGHT - y; + 8000e44: 88ba ldrh r2, [r7, #4] + 8000e46: 883b ldrh r3, [r7, #0] + 8000e48: 4413 add r3, r2 + 8000e4a: 2bf0 cmp r3, #240 @ 0xf0 + 8000e4c: dd03 ble.n 8000e56 + 8000e4e: 88bb ldrh r3, [r7, #4] + 8000e50: f1c3 03f0 rsb r3, r3, #240 @ 0xf0 + 8000e54: 803b strh r3, [r7, #0] + + GC9A01_SetAddressWindow(x, y, x + width - 1, y + height - 1); + 8000e56: 88fa ldrh r2, [r7, #6] + 8000e58: 887b ldrh r3, [r7, #2] + 8000e5a: 4413 add r3, r2 + 8000e5c: b29b uxth r3, r3 + 8000e5e: 3b01 subs r3, #1 + 8000e60: b29c uxth r4, r3 + 8000e62: 88ba ldrh r2, [r7, #4] + 8000e64: 883b ldrh r3, [r7, #0] + 8000e66: 4413 add r3, r2 + 8000e68: b29b uxth r3, r3 + 8000e6a: 3b01 subs r3, #1 + 8000e6c: b29b uxth r3, r3 + 8000e6e: 88b9 ldrh r1, [r7, #4] + 8000e70: 88f8 ldrh r0, [r7, #6] + 8000e72: 4622 mov r2, r4 + 8000e74: f7ff ff22 bl 8000cbc + + static uint8_t data[PIX_BUF * 2]; + uint8_t high = color >> 8; + 8000e78: 8d3b ldrh r3, [r7, #40] @ 0x28 + 8000e7a: 0a1b lsrs r3, r3, #8 + 8000e7c: b29b uxth r3, r3 + 8000e7e: 73fb strb r3, [r7, #15] + uint8_t low = color & 0xFF; + 8000e80: 8d3b ldrh r3, [r7, #40] @ 0x28 + 8000e82: 73bb strb r3, [r7, #14] + for (uint32_t i = 0; i < PIX_BUF; ++i) { + 8000e84: 2300 movs r3, #0 + 8000e86: 617b str r3, [r7, #20] + 8000e88: e00d b.n 8000ea6 + data[2*i] = high; + 8000e8a: 697b ldr r3, [r7, #20] + 8000e8c: 005b lsls r3, r3, #1 + 8000e8e: 491d ldr r1, [pc, #116] @ (8000f04 ) + 8000e90: 7bfa ldrb r2, [r7, #15] + 8000e92: 54ca strb r2, [r1, r3] + data[2*i + 1] = low; + 8000e94: 697b ldr r3, [r7, #20] + 8000e96: 005b lsls r3, r3, #1 + 8000e98: 3301 adds r3, #1 + 8000e9a: 491a ldr r1, [pc, #104] @ (8000f04 ) + 8000e9c: 7bba ldrb r2, [r7, #14] + 8000e9e: 54ca strb r2, [r1, r3] + for (uint32_t i = 0; i < PIX_BUF; ++i) { + 8000ea0: 697b ldr r3, [r7, #20] + 8000ea2: 3301 adds r3, #1 + 8000ea4: 617b str r3, [r7, #20] + 8000ea6: 697b ldr r3, [r7, #20] + 8000ea8: f5b3 7f00 cmp.w r3, #512 @ 0x200 + 8000eac: d3ed bcc.n 8000e8a } - return asinf(value); - 8002d6e: ed97 0a01 vldr s0, [r7, #4] - 8002d72: f007 f99b bl 800a0ac - 8002d76: eef0 7a40 vmov.f32 s15, s0 -} - 8002d7a: eeb0 0a67 vmov.f32 s0, s15 - 8002d7e: 3708 adds r7, #8 - 8002d80: 46bd mov sp, r7 - 8002d82: bd80 pop {r7, pc} - 8002d84: bfc90fdb .word 0xbfc90fdb - 8002d88: 3fc90fdb .word 0x3fc90fdb -08002d8c : -/** - * @brief Converts a quaternion to ZYX Euler angles in degrees. - * @param quaternion Quaternion. - * @return Euler angles in degrees. - */ -static inline FusionEuler FusionQuaternionToEuler(const FusionQuaternion quaternion) { - 8002d8c: b580 push {r7, lr} - 8002d8e: b090 sub sp, #64 @ 0x40 - 8002d90: af00 add r7, sp, #0 - 8002d92: eeb0 6a40 vmov.f32 s12, s0 - 8002d96: eef0 6a60 vmov.f32 s13, s1 - 8002d9a: eeb0 7a41 vmov.f32 s14, s2 - 8002d9e: eef0 7a61 vmov.f32 s15, s3 - 8002da2: ed87 6a04 vstr s12, [r7, #16] - 8002da6: edc7 6a05 vstr s13, [r7, #20] - 8002daa: ed87 7a06 vstr s14, [r7, #24] - 8002dae: edc7 7a07 vstr s15, [r7, #28] -#define Q quaternion.element - const float halfMinusQySquared = 0.5f - Q.y * Q.y; // calculate common terms to avoid repeated operations - 8002db2: ed97 7a06 vldr s14, [r7, #24] - 8002db6: edd7 7a06 vldr s15, [r7, #24] - 8002dba: ee67 7a27 vmul.f32 s15, s14, s15 - 8002dbe: eeb6 7a00 vmov.f32 s14, #96 @ 0x3f000000 0.5 - 8002dc2: ee77 7a67 vsub.f32 s15, s14, s15 - 8002dc6: edc7 7a0f vstr s15, [r7, #60] @ 0x3c - const FusionEuler euler = {.angle = { - .roll = FusionRadiansToDegrees(atan2f(Q.w * Q.x + Q.y * Q.z, halfMinusQySquared - Q.x * Q.x)), - 8002dca: ed97 7a04 vldr s14, [r7, #16] - 8002dce: edd7 7a05 vldr s15, [r7, #20] - 8002dd2: ee27 7a27 vmul.f32 s14, s14, s15 - 8002dd6: edd7 6a06 vldr s13, [r7, #24] - 8002dda: edd7 7a07 vldr s15, [r7, #28] - 8002dde: ee66 7aa7 vmul.f32 s15, s13, s15 - 8002de2: ee77 6a27 vadd.f32 s13, s14, s15 - 8002de6: ed97 7a05 vldr s14, [r7, #20] - 8002dea: edd7 7a05 vldr s15, [r7, #20] - 8002dee: ee67 7a27 vmul.f32 s15, s14, s15 - 8002df2: ed97 7a0f vldr s14, [r7, #60] @ 0x3c - 8002df6: ee77 7a67 vsub.f32 s15, s14, s15 - 8002dfa: eef0 0a67 vmov.f32 s1, s15 - 8002dfe: eeb0 0a66 vmov.f32 s0, s13 - 8002e02: f007 f97f bl 800a104 - 8002e06: eef0 7a40 vmov.f32 s15, s0 - 8002e0a: eeb0 0a67 vmov.f32 s0, s15 - 8002e0e: f7ff ff7d bl 8002d0c - 8002e12: eef0 7a40 vmov.f32 s15, s0 - const FusionEuler euler = {.angle = { - 8002e16: edc7 7a09 vstr s15, [r7, #36] @ 0x24 - .pitch = FusionRadiansToDegrees(FusionAsin(2.0f * (Q.w * Q.y - Q.z * Q.x))), - 8002e1a: ed97 7a04 vldr s14, [r7, #16] - 8002e1e: edd7 7a06 vldr s15, [r7, #24] - 8002e22: ee27 7a27 vmul.f32 s14, s14, s15 - 8002e26: edd7 6a07 vldr s13, [r7, #28] - 8002e2a: edd7 7a05 vldr s15, [r7, #20] - 8002e2e: ee66 7aa7 vmul.f32 s15, s13, s15 - 8002e32: ee77 7a67 vsub.f32 s15, s14, s15 - 8002e36: ee77 7aa7 vadd.f32 s15, s15, s15 - 8002e3a: eeb0 0a67 vmov.f32 s0, s15 - 8002e3e: f7ff ff79 bl 8002d34 - 8002e42: eef0 7a40 vmov.f32 s15, s0 - 8002e46: eeb0 0a67 vmov.f32 s0, s15 - 8002e4a: f7ff ff5f bl 8002d0c - 8002e4e: eef0 7a40 vmov.f32 s15, s0 - const FusionEuler euler = {.angle = { - 8002e52: edc7 7a0a vstr s15, [r7, #40] @ 0x28 - .yaw = FusionRadiansToDegrees(atan2f(Q.w * Q.z + Q.x * Q.y, halfMinusQySquared - Q.z * Q.z)), - 8002e56: ed97 7a04 vldr s14, [r7, #16] - 8002e5a: edd7 7a07 vldr s15, [r7, #28] - 8002e5e: ee27 7a27 vmul.f32 s14, s14, s15 - 8002e62: edd7 6a05 vldr s13, [r7, #20] - 8002e66: edd7 7a06 vldr s15, [r7, #24] - 8002e6a: ee66 7aa7 vmul.f32 s15, s13, s15 - 8002e6e: ee77 6a27 vadd.f32 s13, s14, s15 - 8002e72: ed97 7a07 vldr s14, [r7, #28] - 8002e76: edd7 7a07 vldr s15, [r7, #28] - 8002e7a: ee67 7a27 vmul.f32 s15, s14, s15 - 8002e7e: ed97 7a0f vldr s14, [r7, #60] @ 0x3c - 8002e82: ee77 7a67 vsub.f32 s15, s14, s15 - 8002e86: eef0 0a67 vmov.f32 s1, s15 - 8002e8a: eeb0 0a66 vmov.f32 s0, s13 - 8002e8e: f007 f939 bl 800a104 - 8002e92: eef0 7a40 vmov.f32 s15, s0 - 8002e96: eeb0 0a67 vmov.f32 s0, s15 - 8002e9a: f7ff ff37 bl 8002d0c - 8002e9e: eef0 7a40 vmov.f32 s15, s0 - const FusionEuler euler = {.angle = { - 8002ea2: edc7 7a0b vstr s15, [r7, #44] @ 0x2c - }}; - return euler; - 8002ea6: f107 0330 add.w r3, r7, #48 @ 0x30 - 8002eaa: f107 0224 add.w r2, r7, #36 @ 0x24 - 8002eae: ca07 ldmia r2, {r0, r1, r2} - 8002eb0: e883 0007 stmia.w r3, {r0, r1, r2} - 8002eb4: 6b39 ldr r1, [r7, #48] @ 0x30 - 8002eb6: 6b7a ldr r2, [r7, #52] @ 0x34 - 8002eb8: 6bbb ldr r3, [r7, #56] @ 0x38 - 8002eba: ee06 1a90 vmov s13, r1 - 8002ebe: ee07 2a10 vmov s14, r2 - 8002ec2: ee07 3a90 vmov s15, r3 -#undef Q + uint32_t total = (uint32_t)width * height; + 8000eae: 887b ldrh r3, [r7, #2] + 8000eb0: 883a ldrh r2, [r7, #0] + 8000eb2: fb02 f303 mul.w r3, r2, r3 + 8000eb6: 613b str r3, [r7, #16] + GC9A01_DC_Data(); + 8000eb8: f7ff fea2 bl 8000c00 + GC9A01_Select(); + 8000ebc: f7ff fe7c bl 8000bb8 + while (total) { + 8000ec0: e015 b.n 8000eee + uint32_t chunk = (total > PIX_BUF) ? PIX_BUF : total; + 8000ec2: 693b ldr r3, [r7, #16] + 8000ec4: f5b3 7f00 cmp.w r3, #512 @ 0x200 + 8000ec8: bf28 it cs + 8000eca: f44f 7300 movcs.w r3, #512 @ 0x200 + 8000ece: 60bb str r3, [r7, #8] + HAL_SPI_Transmit(hspi_gc9a01, data, chunk * 2, HAL_MAX_DELAY); + 8000ed0: 4b0d ldr r3, [pc, #52] @ (8000f08 ) + 8000ed2: 6818 ldr r0, [r3, #0] + 8000ed4: 68bb ldr r3, [r7, #8] + 8000ed6: b29b uxth r3, r3 + 8000ed8: 005b lsls r3, r3, #1 + 8000eda: b29a uxth r2, r3 + 8000edc: f04f 33ff mov.w r3, #4294967295 + 8000ee0: 4908 ldr r1, [pc, #32] @ (8000f04 ) + 8000ee2: f001 fc48 bl 8002776 + total -= chunk; + 8000ee6: 693a ldr r2, [r7, #16] + 8000ee8: 68bb ldr r3, [r7, #8] + 8000eea: 1ad3 subs r3, r2, r3 + 8000eec: 613b str r3, [r7, #16] + while (total) { + 8000eee: 693b ldr r3, [r7, #16] + 8000ef0: 2b00 cmp r3, #0 + 8000ef2: d1e6 bne.n 8000ec2 + } + GC9A01_Unselect(); + 8000ef4: f7ff fe6c bl 8000bd0 + 8000ef8: e000 b.n 8000efc + if (x >= GC9A01_WIDTH || y >= GC9A01_HEIGHT) return; + 8000efa: bf00 nop } - 8002ec6: eeb0 0a66 vmov.f32 s0, s13 - 8002eca: eef0 0a47 vmov.f32 s1, s14 - 8002ece: eeb0 1a67 vmov.f32 s2, s15 - 8002ed2: 3740 adds r7, #64 @ 0x40 - 8002ed4: 46bd mov sp, r7 - 8002ed6: bd80 pop {r7, pc} + 8000efc: 371c adds r7, #28 + 8000efe: 46bd mov sp, r7 + 8000f00: bd90 pop {r4, r7, pc} + 8000f02: bf00 nop + 8000f04: 200001f4 .word 0x200001f4 + 8000f08: 200001f0 .word 0x200001f0 -08002ed8 <__io_putchar>: +08000f0c : + +void GC9A01_FillScreen(uint16_t color) { + 8000f0c: b580 push {r7, lr} + 8000f0e: b084 sub sp, #16 + 8000f10: af02 add r7, sp, #8 + 8000f12: 4603 mov r3, r0 + 8000f14: 80fb strh r3, [r7, #6] + GC9A01_FillRect(0, 0, GC9A01_WIDTH, GC9A01_HEIGHT, color); + 8000f16: 88fb ldrh r3, [r7, #6] + 8000f18: 9300 str r3, [sp, #0] + 8000f1a: 23f0 movs r3, #240 @ 0xf0 + 8000f1c: 22f0 movs r2, #240 @ 0xf0 + 8000f1e: 2100 movs r1, #0 + 8000f20: 2000 movs r0, #0 + 8000f22: f7ff ff71 bl 8000e08 +} + 8000f26: bf00 nop + 8000f28: 3708 adds r7, #8 + 8000f2a: 46bd mov sp, r7 + 8000f2c: bd80 pop {r7, pc} + ... + +08000f30

: void SystemClock_Config(void); static void MX_GPIO_Init(void); -static void MX_I2C1_Init(void); -static void MX_USART2_UART_Init(void); +static void MX_SPI1_Init(void); -int __io_putchar(int ch) { - 8002ed8: b580 push {r7, lr} - 8002eda: b082 sub sp, #8 - 8002edc: af00 add r7, sp, #0 - 8002ede: 6078 str r0, [r7, #4] - HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, HAL_MAX_DELAY); - 8002ee0: 1d39 adds r1, r7, #4 - 8002ee2: f04f 33ff mov.w r3, #4294967295 - 8002ee6: 2201 movs r2, #1 - 8002ee8: 4803 ldr r0, [pc, #12] @ (8002ef8 <__io_putchar+0x20>) - 8002eea: f003 fd43 bl 8006974 - return ch; - 8002eee: 687b ldr r3, [r7, #4] -} - 8002ef0: 4618 mov r0, r3 - 8002ef2: 3708 adds r7, #8 - 8002ef4: 46bd mov sp, r7 - 8002ef6: bd80 pop {r7, pc} - 8002ef8: 20000244 .word 0x20000244 - -08002efc
: - -// Variables pour le filtrage du magnétomètre -float mx_filtered = 0.0f, my_filtered = 0.0f, mz_filtered = 0.0f; - -int main(void) { - 8002efc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8002f00: b0c9 sub sp, #292 @ 0x124 - 8002f02: af0e add r7, sp, #56 @ 0x38 +int main(void) +{ + 8000f30: b580 push {r7, lr} + 8000f32: af00 add r7, sp, #0 HAL_Init(); - 8002f04: f001 f89a bl 800403c + 8000f34: f000 fa56 bl 80013e4 SystemClock_Config(); - 8002f08: f000 fa5c bl 80033c4 + 8000f38: f000 f87a bl 8001030 MX_GPIO_Init(); - 8002f0c: f000 fb1c bl 8003548 - MX_I2C1_Init(); - 8002f10: f000 faaa bl 8003468 - MX_USART2_UART_Init(); - 8002f14: f000 fae8 bl 80034e8 + 8000f3c: f000 f848 bl 8000fd0 + MX_SPI1_Init(); + 8000f40: f000 f80e bl 8000f60 - // Initialisation de l'écran - lcd_init(); - 8002f18: f7ff fe36 bl 8002b88 - lcd_clear(); - 8002f1c: f7ff fe50 bl 8002bc0 - lcd_set_cursor(0, 0); - 8002f20: 2100 movs r1, #0 - 8002f22: 2000 movs r0, #0 - 8002f24: f7ff fe56 bl 8002bd4 - lcd_print("MOTO IMU SYSTEM"); - 8002f28: 48d5 ldr r0, [pc, #852] @ (8003280 ) - 8002f2a: f7ff fe73 bl 8002c14 - HAL_Delay(1000); - 8002f2e: f44f 707a mov.w r0, #1000 @ 0x3e8 - 8002f32: f001 f8ff bl 8004134 + // Initialisation écran GC9A01 + GC9A01_Init(&hspi1); + 8000f44: 4805 ldr r0, [pc, #20] @ (8000f5c ) + 8000f46: f7ff ff01 bl 8000d4c - // Initialisation de l'IMU - icm20948_init(); - 8002f36: f7ff fcf5 bl 8002924 + // Allumer l'écran + GC9A01_DisplayOn(); + 8000f4a: f7ff ff55 bl 8000df8 - // Initialisation de la fusion AHRS - FusionAhrsInitialise(&ahrs); - 8002f3a: 48d2 ldr r0, [pc, #840] @ (8003284 ) - 8002f3c: f7fe fc80 bl 8001840 + // Test simple : écran rouge + GC9A01_FillScreen(GC9A01_RED); + 8000f4e: f44f 4078 mov.w r0, #63488 @ 0xf800 + 8000f52: f7ff ffdb bl 8000f0c - FusionAhrsSettings settings = { - 8002f40: 4bd1 ldr r3, [pc, #836] @ (8003288 ) - 8002f42: f107 049c add.w r4, r7, #156 @ 0x9c - 8002f46: 461d mov r5, r3 - 8002f48: cd0f ldmia r5!, {r0, r1, r2, r3} - 8002f4a: c40f stmia r4!, {r0, r1, r2, r3} - 8002f4c: e895 0003 ldmia.w r5, {r0, r1} - 8002f50: e884 0003 stmia.w r4, {r0, r1} - .gyroscopeRange = 2000.0f, // Range du gyroscope en dps - .accelerationRejection = 15.0f, // Rejet modéré (vibrations moto) - .magneticRejection = 30.0f, // Rejet élevé (interférences métalliques) - .recoveryTriggerPeriod = (int)(2.0f / MOTO_SAMPLE_PERIOD) // 2 secondes - }; - FusionAhrsSetSettings(&ahrs, &settings); - 8002f54: f107 039c add.w r3, r7, #156 @ 0x9c - 8002f58: 4619 mov r1, r3 - 8002f5a: 48ca ldr r0, [pc, #808] @ (8003284 ) - 8002f5c: f7fe fcf2 bl 8001944 + while(1) + 8000f56: bf00 nop + 8000f58: e7fd b.n 8000f56 + 8000f5a: bf00 nop + 8000f5c: 200005f4 .word 0x200005f4 - // Initialisation des données moto - Moto_InitData(&moto_data); - 8002f60: 48ca ldr r0, [pc, #808] @ (800328c ) - 8002f62: f000 fb81 bl 8003668 - - - - uint32_t last_time = HAL_GetTick(); - 8002f66: f001 f8d9 bl 800411c - 8002f6a: f8c7 00e4 str.w r0, [r7, #228] @ 0xe4 - uint32_t init_start_time = last_time; - 8002f6e: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 - 8002f72: f8c7 30d8 str.w r3, [r7, #216] @ 0xd8 - uint32_t display_update_counter = 0; - 8002f76: 2300 movs r3, #0 - 8002f78: f8c7 30e0 str.w r3, [r7, #224] @ 0xe0 - - while (1) { - uint32_t current_time = HAL_GetTick(); - 8002f7c: f001 f8ce bl 800411c - 8002f80: f8c7 00d4 str.w r0, [r7, #212] @ 0xd4 - float dt = (current_time - last_time) / 1000.0f; - 8002f84: f8d7 20d4 ldr.w r2, [r7, #212] @ 0xd4 - 8002f88: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 - 8002f8c: 1ad3 subs r3, r2, r3 - 8002f8e: ee07 3a90 vmov s15, r3 - 8002f92: eeb8 7a67 vcvt.f32.u32 s14, s15 - 8002f96: eddf 6abe vldr s13, [pc, #760] @ 8003290 - 8002f9a: eec7 7a26 vdiv.f32 s15, s14, s13 - 8002f9e: edc7 7a34 vstr s15, [r7, #208] @ 0xd0 - - if (dt >= MOTO_SAMPLE_PERIOD) { - 8002fa2: edd7 7a34 vldr s15, [r7, #208] @ 0xd0 - 8002fa6: ed9f 7abb vldr s14, [pc, #748] @ 8003294 - 8002faa: eef4 7ac7 vcmpe.f32 s15, s14 - 8002fae: eef1 fa10 vmrs APSR_nzcv, fpscr - 8002fb2: f2c0 81f5 blt.w 80033a0 - float ax, ay, az; // Accéléromètre - float gx, gy, gz; // Gyroscope - float mx, my, mz; // Magnétomètre - - // Lecture des capteurs - icm20948_read_accel(&ax, &ay, &az); - 8002fb6: f107 0290 add.w r2, r7, #144 @ 0x90 - 8002fba: f107 0194 add.w r1, r7, #148 @ 0x94 - 8002fbe: f107 0398 add.w r3, r7, #152 @ 0x98 - 8002fc2: 4618 mov r0, r3 - 8002fc4: f7ff fcca bl 800295c - icm20948_read_gyro(&gx, &gy, &gz); - 8002fc8: f107 0284 add.w r2, r7, #132 @ 0x84 - 8002fcc: f107 0188 add.w r1, r7, #136 @ 0x88 - 8002fd0: f107 038c add.w r3, r7, #140 @ 0x8c - 8002fd4: 4618 mov r0, r3 - 8002fd6: f7ff fd1d bl 8002a14 - icm20948_read_mag(&mx, &my, &mz); - 8002fda: f107 0278 add.w r2, r7, #120 @ 0x78 - 8002fde: f107 017c add.w r1, r7, #124 @ 0x7c - 8002fe2: f107 0380 add.w r3, r7, #128 @ 0x80 - 8002fe6: 4618 mov r0, r3 - 8002fe8: f7ff fd72 bl 8002ad0 - - // Calibration et filtrage du magnétomètre - Moto_CalibrateMagnetometer(&mx, &my, &mz); - 8002fec: f107 0278 add.w r2, r7, #120 @ 0x78 - 8002ff0: f107 017c add.w r1, r7, #124 @ 0x7c - 8002ff4: f107 0380 add.w r3, r7, #128 @ 0x80 - 8002ff8: 4618 mov r0, r3 - 8002ffa: f000 fd04 bl 8003a06 - mx_filtered = MOTO_MAG_FILTER_ALPHA * mx + (1.0f - MOTO_MAG_FILTER_ALPHA) * mx_filtered; - 8002ffe: edd7 7a20 vldr s15, [r7, #128] @ 0x80 - 8003002: ed9f 7aa5 vldr s14, [pc, #660] @ 8003298 - 8003006: ee27 7a87 vmul.f32 s14, s15, s14 - 800300a: 4ba4 ldr r3, [pc, #656] @ (800329c ) - 800300c: edd3 7a00 vldr s15, [r3] - 8003010: eddf 6aa3 vldr s13, [pc, #652] @ 80032a0 - 8003014: ee67 7aa6 vmul.f32 s15, s15, s13 - 8003018: ee77 7a27 vadd.f32 s15, s14, s15 - 800301c: 4b9f ldr r3, [pc, #636] @ (800329c ) - 800301e: edc3 7a00 vstr s15, [r3] - my_filtered = MOTO_MAG_FILTER_ALPHA * my + (1.0f - MOTO_MAG_FILTER_ALPHA) * my_filtered; - 8003022: edd7 7a1f vldr s15, [r7, #124] @ 0x7c - 8003026: ed9f 7a9c vldr s14, [pc, #624] @ 8003298 - 800302a: ee27 7a87 vmul.f32 s14, s15, s14 - 800302e: 4b9d ldr r3, [pc, #628] @ (80032a4 ) - 8003030: edd3 7a00 vldr s15, [r3] - 8003034: eddf 6a9a vldr s13, [pc, #616] @ 80032a0 - 8003038: ee67 7aa6 vmul.f32 s15, s15, s13 - 800303c: ee77 7a27 vadd.f32 s15, s14, s15 - 8003040: 4b98 ldr r3, [pc, #608] @ (80032a4 ) - 8003042: edc3 7a00 vstr s15, [r3] - mz_filtered = MOTO_MAG_FILTER_ALPHA * mz + (1.0f - MOTO_MAG_FILTER_ALPHA) * mz_filtered; - 8003046: edd7 7a1e vldr s15, [r7, #120] @ 0x78 - 800304a: ed9f 7a93 vldr s14, [pc, #588] @ 8003298 - 800304e: ee27 7a87 vmul.f32 s14, s15, s14 - 8003052: 4b95 ldr r3, [pc, #596] @ (80032a8 ) - 8003054: edd3 7a00 vldr s15, [r3] - 8003058: eddf 6a91 vldr s13, [pc, #580] @ 80032a0 - 800305c: ee67 7aa6 vmul.f32 s15, s15, s13 - 8003060: ee77 7a27 vadd.f32 s15, s14, s15 - 8003064: 4b90 ldr r3, [pc, #576] @ (80032a8 ) - 8003066: edc3 7a00 vstr s15, [r3] - - // Préparation des données pour Fusion - FusionVector gyroscope = {gx, gy, gz}; - 800306a: f8d7 308c ldr.w r3, [r7, #140] @ 0x8c - 800306e: 66fb str r3, [r7, #108] @ 0x6c - 8003070: f8d7 3088 ldr.w r3, [r7, #136] @ 0x88 - 8003074: 673b str r3, [r7, #112] @ 0x70 - 8003076: f8d7 3084 ldr.w r3, [r7, #132] @ 0x84 - 800307a: 677b str r3, [r7, #116] @ 0x74 - FusionVector accelerometer = {ax, ay, az}; - 800307c: f8d7 3098 ldr.w r3, [r7, #152] @ 0x98 - 8003080: 663b str r3, [r7, #96] @ 0x60 - 8003082: f8d7 3094 ldr.w r3, [r7, #148] @ 0x94 - 8003086: 667b str r3, [r7, #100] @ 0x64 - 8003088: f8d7 3090 ldr.w r3, [r7, #144] @ 0x90 - 800308c: 66bb str r3, [r7, #104] @ 0x68 - FusionVector magnetometer = {mx_filtered, my_filtered, mz_filtered}; - 800308e: 4b83 ldr r3, [pc, #524] @ (800329c ) - 8003090: 681b ldr r3, [r3, #0] - 8003092: 657b str r3, [r7, #84] @ 0x54 - 8003094: 4b83 ldr r3, [pc, #524] @ (80032a4 ) - 8003096: 681b ldr r3, [r3, #0] - 8003098: 65bb str r3, [r7, #88] @ 0x58 - 800309a: 4b83 ldr r3, [pc, #524] @ (80032a8 ) - 800309c: 681b ldr r3, [r3, #0] - 800309e: 65fb str r3, [r7, #92] @ 0x5c - - // Mise à jour AHRS - FusionAhrsUpdate(&ahrs, gyroscope, accelerometer, magnetometer, dt); - 80030a0: ed97 3a15 vldr s6, [r7, #84] @ 0x54 - 80030a4: edd7 3a16 vldr s7, [r7, #88] @ 0x58 - 80030a8: ed97 4a17 vldr s8, [r7, #92] @ 0x5c - 80030ac: ed97 5a18 vldr s10, [r7, #96] @ 0x60 - 80030b0: edd7 5a19 vldr s11, [r7, #100] @ 0x64 - 80030b4: ed97 6a1a vldr s12, [r7, #104] @ 0x68 - 80030b8: edd7 6a1b vldr s13, [r7, #108] @ 0x6c - 80030bc: ed97 7a1c vldr s14, [r7, #112] @ 0x70 - 80030c0: edd7 7a1d vldr s15, [r7, #116] @ 0x74 - 80030c4: edd7 4a34 vldr s9, [r7, #208] @ 0xd0 - 80030c8: eef0 1a45 vmov.f32 s3, s10 - 80030cc: eeb0 2a65 vmov.f32 s4, s11 - 80030d0: eef0 2a46 vmov.f32 s5, s12 - 80030d4: eeb0 0a66 vmov.f32 s0, s13 - 80030d8: eef0 0a47 vmov.f32 s1, s14 - 80030dc: eeb0 1a67 vmov.f32 s2, s15 - 80030e0: 4868 ldr r0, [pc, #416] @ (8003284 ) - 80030e2: f7fe fce7 bl 8001ab4 - - // Récupération des angles d'Euler - FusionEuler euler = FusionQuaternionToEuler(FusionAhrsGetQuaternion(&ahrs)); - 80030e6: 4867 ldr r0, [pc, #412] @ (8003284 ) - 80030e8: f7ff fb08 bl 80026fc - 80030ec: eeb0 6a40 vmov.f32 s12, s0 - 80030f0: eef0 6a60 vmov.f32 s13, s1 - 80030f4: eeb0 7a41 vmov.f32 s14, s2 - 80030f8: eef0 7a61 vmov.f32 s15, s3 - 80030fc: ed87 6a2d vstr s12, [r7, #180] @ 0xb4 - 8003100: edc7 6a2e vstr s13, [r7, #184] @ 0xb8 - 8003104: ed87 7a2f vstr s14, [r7, #188] @ 0xbc - 8003108: edc7 7a30 vstr s15, [r7, #192] @ 0xc0 - 800310c: ed97 6a2d vldr s12, [r7, #180] @ 0xb4 - 8003110: edd7 6a2e vldr s13, [r7, #184] @ 0xb8 - 8003114: ed97 7a2f vldr s14, [r7, #188] @ 0xbc - 8003118: edd7 7a30 vldr s15, [r7, #192] @ 0xc0 - 800311c: eeb0 0a46 vmov.f32 s0, s12 - 8003120: eef0 0a66 vmov.f32 s1, s13 - 8003124: eeb0 1a47 vmov.f32 s2, s14 - 8003128: eef0 1a67 vmov.f32 s3, s15 - 800312c: f7ff fe2e bl 8002d8c - 8003130: eef0 6a40 vmov.f32 s13, s0 - 8003134: eeb0 7a60 vmov.f32 s14, s1 - 8003138: eef0 7a41 vmov.f32 s15, s2 - 800313c: edc7 6a12 vstr s13, [r7, #72] @ 0x48 - 8003140: ed87 7a13 vstr s14, [r7, #76] @ 0x4c - 8003144: edc7 7a14 vstr s15, [r7, #80] @ 0x50 - float roll = euler.angle.roll; - 8003148: 6cbb ldr r3, [r7, #72] @ 0x48 - 800314a: f8c7 30cc str.w r3, [r7, #204] @ 0xcc - float pitch = euler.angle.pitch; - 800314e: 6cfb ldr r3, [r7, #76] @ 0x4c - 8003150: f8c7 30c8 str.w r3, [r7, #200] @ 0xc8 - float yaw = euler.angle.yaw; - 8003154: 6d3b ldr r3, [r7, #80] @ 0x50 - 8003156: f8c7 30c4 str.w r3, [r7, #196] @ 0xc4 - - // Vérification de la phase d'initialisation - FusionAhrsFlags flags = FusionAhrsGetFlags(&ahrs); - 800315a: 484a ldr r0, [pc, #296] @ (8003284 ) - 800315c: f7ff fb80 bl 8002860 - 8003160: 4603 mov r3, r0 - 8003162: 647b str r3, [r7, #68] @ 0x44 - moto_data.is_initializing = flags.initialising; - 8003164: f897 2044 ldrb.w r2, [r7, #68] @ 0x44 - 8003168: 4b48 ldr r3, [pc, #288] @ (800328c ) - 800316a: 765a strb r2, [r3, #25] - - // Mise à jour de l'état de la moto - Moto_UpdateState(&moto_data, roll, pitch, yaw, gx, gy, gz); - 800316c: edd7 7a23 vldr s15, [r7, #140] @ 0x8c - 8003170: ed97 7a22 vldr s14, [r7, #136] @ 0x88 - 8003174: edd7 6a21 vldr s13, [r7, #132] @ 0x84 - 8003178: eef0 2a66 vmov.f32 s5, s13 - 800317c: eeb0 2a47 vmov.f32 s4, s14 - 8003180: eef0 1a67 vmov.f32 s3, s15 - 8003184: ed97 1a31 vldr s2, [r7, #196] @ 0xc4 - 8003188: edd7 0a32 vldr s1, [r7, #200] @ 0xc8 - 800318c: ed97 0a33 vldr s0, [r7, #204] @ 0xcc - 8003190: 483e ldr r0, [pc, #248] @ (800328c ) - 8003192: f000 fa7f bl 8003694 - Moto_FilterAngles(&moto_data); - 8003196: 483d ldr r0, [pc, #244] @ (800328c ) - 8003198: f000 fb0c bl 80037b4 - Moto_UpdateStats(&moto_stats, &moto_data, gx, gy, gz); - 800319c: edd7 7a23 vldr s15, [r7, #140] @ 0x8c - 80031a0: ed97 7a22 vldr s14, [r7, #136] @ 0x88 - 80031a4: edd7 6a21 vldr s13, [r7, #132] @ 0x84 - 80031a8: eeb0 1a66 vmov.f32 s2, s13 - 80031ac: eef0 0a47 vmov.f32 s1, s14 - 80031b0: eeb0 0a67 vmov.f32 s0, s15 - 80031b4: 4935 ldr r1, [pc, #212] @ (800328c ) - 80031b6: 483d ldr r0, [pc, #244] @ (80032ac ) - 80031b8: f000 fb84 bl 80038c4 - - // Mise à jour de l'affichage (toutes les 5 itérations = ~50ms) - display_update_counter++; - 80031bc: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 - 80031c0: 3301 adds r3, #1 - 80031c2: f8c7 30e0 str.w r3, [r7, #224] @ 0xe0 - if (display_update_counter >= 5) { - 80031c6: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 - 80031ca: 2b04 cmp r3, #4 - 80031cc: d923 bls.n 8003216 - char buffer[21]; - - for (int line = 0; line < 4; line++) { - 80031ce: 2300 movs r3, #0 - 80031d0: f8c7 30dc str.w r3, [r7, #220] @ 0xdc - 80031d4: e018 b.n 8003208 - Moto_FormatDisplay(&moto_data, line, buffer); - 80031d6: f107 032c add.w r3, r7, #44 @ 0x2c - 80031da: 461a mov r2, r3 - 80031dc: f8d7 10dc ldr.w r1, [r7, #220] @ 0xdc - 80031e0: 482a ldr r0, [pc, #168] @ (800328c ) - 80031e2: f000 fc55 bl 8003a90 - lcd_set_cursor(line, 0); - 80031e6: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc - 80031ea: b2db uxtb r3, r3 - 80031ec: 2100 movs r1, #0 - 80031ee: 4618 mov r0, r3 - 80031f0: f7ff fcf0 bl 8002bd4 - lcd_print(buffer); - 80031f4: f107 032c add.w r3, r7, #44 @ 0x2c - 80031f8: 4618 mov r0, r3 - 80031fa: f7ff fd0b bl 8002c14 - for (int line = 0; line < 4; line++) { - 80031fe: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc - 8003202: 3301 adds r3, #1 - 8003204: f8c7 30dc str.w r3, [r7, #220] @ 0xdc - 8003208: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc - 800320c: 2b03 cmp r3, #3 - 800320e: dde2 ble.n 80031d6 - } - - display_update_counter = 0; - 8003210: 2300 movs r3, #0 - 8003212: f8c7 30e0 str.w r3, [r7, #224] @ 0xe0 - } - - // LED d'état - switch (moto_data.state) { - 8003216: 4b1d ldr r3, [pc, #116] @ (800328c ) - 8003218: 7e1b ldrb r3, [r3, #24] - 800321a: 2b06 cmp r3, #6 - 800321c: d864 bhi.n 80032e8 - 800321e: a201 add r2, pc, #4 @ (adr r2, 8003224 ) - 8003220: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8003224: 08003241 .word 0x08003241 - 8003228: 0800324f .word 0x0800324f - 800322c: 080032b9 .word 0x080032b9 - 8003230: 080032e9 .word 0x080032e9 - 8003234: 080032e9 .word 0x080032e9 - 8003238: 0800324f .word 0x0800324f - 800323c: 080032b9 .word 0x080032b9 - case MOTO_STATE_NORMAL: - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); - 8003240: 2200 movs r2, #0 - 8003242: f44f 5100 mov.w r1, #8192 @ 0x2000 - 8003246: 481a ldr r0, [pc, #104] @ (80032b0 ) - 8003248: f001 f9f8 bl 800463c - break; - 800324c: e053 b.n 80032f6 - case MOTO_STATE_WARNING: - case MOTO_STATE_RAPID_TURN: - // Clignotement lent - if ((current_time / 500) % 2) { - 800324e: f8d7 30d4 ldr.w r3, [r7, #212] @ 0xd4 - 8003252: 4a18 ldr r2, [pc, #96] @ (80032b4 ) - 8003254: fba2 2303 umull r2, r3, r2, r3 - 8003258: 095b lsrs r3, r3, #5 - 800325a: f003 0301 and.w r3, r3, #1 - 800325e: 2b00 cmp r3, #0 - 8003260: d006 beq.n 8003270 - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_SET); - 8003262: 2201 movs r2, #1 - 8003264: f44f 5100 mov.w r1, #8192 @ 0x2000 - 8003268: 4811 ldr r0, [pc, #68] @ (80032b0 ) - 800326a: f001 f9e7 bl 800463c - } else { - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); - } - break; - 800326e: e042 b.n 80032f6 - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); - 8003270: 2200 movs r2, #0 - 8003272: f44f 5100 mov.w r1, #8192 @ 0x2000 - 8003276: 480e ldr r0, [pc, #56] @ (80032b0 ) - 8003278: f001 f9e0 bl 800463c - break; - 800327c: e03b b.n 80032f6 - 800327e: bf00 nop - 8003280: 0800b748 .word 0x0800b748 - 8003284: 200002cc .word 0x200002cc - 8003288: 0800b7a4 .word 0x0800b7a4 - 800328c: 20000340 .word 0x20000340 - 8003290: 447a0000 .word 0x447a0000 - 8003294: 3c23d70a .word 0x3c23d70a - 8003298: 3dcccccd .word 0x3dcccccd - 800329c: 2000038c .word 0x2000038c - 80032a0: 3f666666 .word 0x3f666666 - 80032a4: 20000390 .word 0x20000390 - 80032a8: 20000394 .word 0x20000394 - 80032ac: 20000364 .word 0x20000364 - 80032b0: 48000400 .word 0x48000400 - 80032b4: 10624dd3 .word 0x10624dd3 - case MOTO_STATE_DANGER: - case MOTO_STATE_POSSIBLE_CRASH: - // Clignotement rapide - if ((current_time / 100) % 2) { - 80032b8: f8d7 30d4 ldr.w r3, [r7, #212] @ 0xd4 - 80032bc: 4a3a ldr r2, [pc, #232] @ (80033a8 ) - 80032be: fba2 2303 umull r2, r3, r2, r3 - 80032c2: 095b lsrs r3, r3, #5 - 80032c4: f003 0301 and.w r3, r3, #1 - 80032c8: 2b00 cmp r3, #0 - 80032ca: d006 beq.n 80032da - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_SET); - 80032cc: 2201 movs r2, #1 - 80032ce: f44f 5100 mov.w r1, #8192 @ 0x2000 - 80032d2: 4836 ldr r0, [pc, #216] @ (80033ac ) - 80032d4: f001 f9b2 bl 800463c - } else { - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); - } - break; - 80032d8: e00d b.n 80032f6 - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); - 80032da: 2200 movs r2, #0 - 80032dc: f44f 5100 mov.w r1, #8192 @ 0x2000 - 80032e0: 4832 ldr r0, [pc, #200] @ (80033ac ) - 80032e2: f001 f9ab bl 800463c - break; - 80032e6: e006 b.n 80032f6 - default: - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_SET); - 80032e8: 2201 movs r2, #1 - 80032ea: f44f 5100 mov.w r1, #8192 @ 0x2000 - 80032ee: 482f ldr r0, [pc, #188] @ (80033ac ) - 80032f0: f001 f9a4 bl 800463c - break; - 80032f4: bf00 nop - } - - // Debug UART (toutes les 50 itérations = ~500ms) - static uint32_t uart_counter = 0; - uart_counter++; - 80032f6: 4b2e ldr r3, [pc, #184] @ (80033b0 ) - 80032f8: 681b ldr r3, [r3, #0] - 80032fa: 3301 adds r3, #1 - 80032fc: 4a2c ldr r2, [pc, #176] @ (80033b0 ) - 80032fe: 6013 str r3, [r2, #0] - if (uart_counter >= 50) { - 8003300: 4b2b ldr r3, [pc, #172] @ (80033b0 ) - 8003302: 681b ldr r3, [r3, #0] - 8003304: 2b31 cmp r3, #49 @ 0x31 - 8003306: d943 bls.n 8003390 - FusionAhrsInternalStates states = FusionAhrsGetInternalStates(&ahrs); - 8003308: f107 0314 add.w r3, r7, #20 - 800330c: 4929 ldr r1, [pc, #164] @ (80033b4 ) - 800330e: 4618 mov r0, r3 - 8003310: f7ff fa18 bl 8002744 - - printf("R:%.1f P:%.1f Y:%.1f | St:%s | AE:%.1f ME:%.1f | AI:%d MI:%d | Smp:%lu\r\n", - 8003314: f8d7 00cc ldr.w r0, [r7, #204] @ 0xcc - 8003318: f7fd f91e bl 8000558 <__aeabi_f2d> - 800331c: e9c7 0102 strd r0, r1, [r7, #8] - 8003320: f8d7 00c8 ldr.w r0, [r7, #200] @ 0xc8 - 8003324: f7fd f918 bl 8000558 <__aeabi_f2d> - 8003328: 4604 mov r4, r0 - 800332a: 460d mov r5, r1 - 800332c: f8d7 00c4 ldr.w r0, [r7, #196] @ 0xc4 - 8003330: f7fd f912 bl 8000558 <__aeabi_f2d> - 8003334: 4680 mov r8, r0 - 8003336: 4689 mov r9, r1 - 8003338: 4b1f ldr r3, [pc, #124] @ (80033b8 ) - 800333a: 7e1b ldrb r3, [r3, #24] - 800333c: 4618 mov r0, r3 - 800333e: f000 fa81 bl 8003844 - 8003342: 4606 mov r6, r0 - roll, pitch, yaw, - Moto_GetStateString(moto_data.state), - states.accelerationError, states.magneticError, - 8003344: 697b ldr r3, [r7, #20] - printf("R:%.1f P:%.1f Y:%.1f | St:%s | AE:%.1f ME:%.1f | AI:%d MI:%d | Smp:%lu\r\n", - 8003346: 4618 mov r0, r3 - 8003348: f7fd f906 bl 8000558 <__aeabi_f2d> - 800334c: 4682 mov sl, r0 - 800334e: 468b mov fp, r1 - states.accelerationError, states.magneticError, - 8003350: 6a3b ldr r3, [r7, #32] - printf("R:%.1f P:%.1f Y:%.1f | St:%s | AE:%.1f ME:%.1f | AI:%d MI:%d | Smp:%lu\r\n", - 8003352: 4618 mov r0, r3 - 8003354: f7fd f900 bl 8000558 <__aeabi_f2d> - states.accelerometerIgnored, states.magnetometerIgnored, - 8003358: 7e3b ldrb r3, [r7, #24] - printf("R:%.1f P:%.1f Y:%.1f | St:%s | AE:%.1f ME:%.1f | AI:%d MI:%d | Smp:%lu\r\n", - 800335a: 461a mov r2, r3 - states.accelerometerIgnored, states.magnetometerIgnored, - 800335c: f897 3024 ldrb.w r3, [r7, #36] @ 0x24 - printf("R:%.1f P:%.1f Y:%.1f | St:%s | AE:%.1f ME:%.1f | AI:%d MI:%d | Smp:%lu\r\n", - 8003360: 607b str r3, [r7, #4] - 8003362: 4b16 ldr r3, [pc, #88] @ (80033bc ) - 8003364: 69db ldr r3, [r3, #28] - 8003366: 930c str r3, [sp, #48] @ 0x30 - 8003368: 687b ldr r3, [r7, #4] - 800336a: 930b str r3, [sp, #44] @ 0x2c - 800336c: 920a str r2, [sp, #40] @ 0x28 - 800336e: e9cd 0108 strd r0, r1, [sp, #32] - 8003372: e9cd ab06 strd sl, fp, [sp, #24] - 8003376: 9604 str r6, [sp, #16] - 8003378: e9cd 8902 strd r8, r9, [sp, #8] - 800337c: e9cd 4500 strd r4, r5, [sp] - 8003380: e9d7 2302 ldrd r2, r3, [r7, #8] - 8003384: 480e ldr r0, [pc, #56] @ (80033c0 ) - 8003386: f004 fd37 bl 8007df8 - moto_stats.total_samples); - - uart_counter = 0; - 800338a: 4b09 ldr r3, [pc, #36] @ (80033b0 ) - 800338c: 2200 movs r2, #0 - 800338e: 601a str r2, [r3, #0] - } - - // Mise à jour du timestamp - moto_data.last_update_time = current_time; - 8003390: 4a09 ldr r2, [pc, #36] @ (80033b8 ) - 8003392: f8d7 30d4 ldr.w r3, [r7, #212] @ 0xd4 - 8003396: 6213 str r3, [r2, #32] - last_time = current_time; - 8003398: f8d7 30d4 ldr.w r3, [r7, #212] @ 0xd4 - 800339c: f8c7 30e4 str.w r3, [r7, #228] @ 0xe4 - } - - // Petite pause pour éviter la surcharge du processeur - HAL_Delay(10); - 80033a0: 200a movs r0, #10 - 80033a2: f000 fec7 bl 8004134 - while (1) { - 80033a6: e5e9 b.n 8002f7c - 80033a8: 51eb851f .word 0x51eb851f - 80033ac: 48000400 .word 0x48000400 - 80033b0: 20000398 .word 0x20000398 - 80033b4: 200002cc .word 0x200002cc - 80033b8: 20000340 .word 0x20000340 - 80033bc: 20000364 .word 0x20000364 - 80033c0: 0800b758 .word 0x0800b758 - -080033c4 : +08000f60 : } } -void SystemClock_Config(void) +// ----------- Configuration SPI1 ----------- +static void MX_SPI1_Init(void) { - 80033c4: b580 push {r7, lr} - 80033c6: b096 sub sp, #88 @ 0x58 - 80033c8: af00 add r7, sp, #0 - RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 80033ca: f107 0314 add.w r3, r7, #20 - 80033ce: 2244 movs r2, #68 @ 0x44 - 80033d0: 2100 movs r1, #0 - 80033d2: 4618 mov r0, r3 - 80033d4: f004 fd9b bl 8007f0e - RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 80033d8: 463b mov r3, r7 - 80033da: 2200 movs r2, #0 - 80033dc: 601a str r2, [r3, #0] - 80033de: 605a str r2, [r3, #4] - 80033e0: 609a str r2, [r3, #8] - 80033e2: 60da str r2, [r3, #12] - 80033e4: 611a str r2, [r3, #16] - - /** Configure the main internal regulator output voltage - */ - if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) - 80033e6: f44f 7000 mov.w r0, #512 @ 0x200 - 80033ea: f002 f889 bl 8005500 - 80033ee: 4603 mov r3, r0 - 80033f0: 2b00 cmp r3, #0 - 80033f2: d001 beq.n 80033f8 - { - Error_Handler(); - 80033f4: f000 f932 bl 800365c - } - - /** Initializes the RCC Oscillators according to the specified parameters - * in the RCC_OscInitTypeDef structure. - */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; - 80033f8: 2302 movs r3, #2 - 80033fa: 617b str r3, [r7, #20] - RCC_OscInitStruct.HSIState = RCC_HSI_ON; - 80033fc: f44f 7380 mov.w r3, #256 @ 0x100 - 8003400: 623b str r3, [r7, #32] - RCC_OscInitStruct.HSICalibrationValue = 64; - 8003402: 2340 movs r3, #64 @ 0x40 - 8003404: 627b str r3, [r7, #36] @ 0x24 - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - 8003406: 2302 movs r3, #2 - 8003408: 63fb str r3, [r7, #60] @ 0x3c - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; - 800340a: 2302 movs r3, #2 - 800340c: 643b str r3, [r7, #64] @ 0x40 - RCC_OscInitStruct.PLL.PLLM = 1; - 800340e: 2301 movs r3, #1 - 8003410: 647b str r3, [r7, #68] @ 0x44 - RCC_OscInitStruct.PLL.PLLN = 10; - 8003412: 230a movs r3, #10 - 8003414: 64bb str r3, [r7, #72] @ 0x48 - RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7; - 8003416: 2307 movs r3, #7 - 8003418: 64fb str r3, [r7, #76] @ 0x4c - RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; - 800341a: 2302 movs r3, #2 - 800341c: 653b str r3, [r7, #80] @ 0x50 - RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; - 800341e: 2302 movs r3, #2 - 8003420: 657b str r3, [r7, #84] @ 0x54 - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 8003422: f107 0314 add.w r3, r7, #20 - 8003426: 4618 mov r0, r3 - 8003428: f002 f8c0 bl 80055ac - 800342c: 4603 mov r3, r0 - 800342e: 2b00 cmp r3, #0 - 8003430: d001 beq.n 8003436 - { - Error_Handler(); - 8003432: f000 f913 bl 800365c - } - - /** Initializes the CPU, AHB and APB buses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 8003436: 230f movs r3, #15 - 8003438: 603b str r3, [r7, #0] - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - 800343a: 2303 movs r3, #3 - 800343c: 607b str r3, [r7, #4] - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 800343e: 2300 movs r3, #0 - 8003440: 60bb str r3, [r7, #8] - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - 8003442: 2300 movs r3, #0 - 8003444: 60fb str r3, [r7, #12] - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - 8003446: 2300 movs r3, #0 - 8003448: 613b str r3, [r7, #16] - - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) - 800344a: 463b mov r3, r7 - 800344c: 2104 movs r1, #4 - 800344e: 4618 mov r0, r3 - 8003450: f002 fcc0 bl 8005dd4 - 8003454: 4603 mov r3, r0 - 8003456: 2b00 cmp r3, #0 - 8003458: d001 beq.n 800345e - { - Error_Handler(); - 800345a: f000 f8ff bl 800365c - } + 8000f60: b580 push {r7, lr} + 8000f62: af00 add r7, sp, #0 + hspi1.Instance = SPI1; + 8000f64: 4b18 ldr r3, [pc, #96] @ (8000fc8 ) + 8000f66: 4a19 ldr r2, [pc, #100] @ (8000fcc ) + 8000f68: 601a str r2, [r3, #0] + hspi1.Init.Mode = SPI_MODE_MASTER; + 8000f6a: 4b17 ldr r3, [pc, #92] @ (8000fc8 ) + 8000f6c: f44f 7282 mov.w r2, #260 @ 0x104 + 8000f70: 605a str r2, [r3, #4] + hspi1.Init.Direction = SPI_DIRECTION_1LINE; // ou 2LINES si câblé full duplex + 8000f72: 4b15 ldr r3, [pc, #84] @ (8000fc8 ) + 8000f74: f44f 4200 mov.w r2, #32768 @ 0x8000 + 8000f78: 609a str r2, [r3, #8] + hspi1.Init.DataSize = SPI_DATASIZE_8BIT; + 8000f7a: 4b13 ldr r3, [pc, #76] @ (8000fc8 ) + 8000f7c: f44f 62e0 mov.w r2, #1792 @ 0x700 + 8000f80: 60da str r2, [r3, #12] + hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; + 8000f82: 4b11 ldr r3, [pc, #68] @ (8000fc8 ) + 8000f84: 2200 movs r2, #0 + 8000f86: 611a str r2, [r3, #16] + hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; + 8000f88: 4b0f ldr r3, [pc, #60] @ (8000fc8 ) + 8000f8a: 2200 movs r2, #0 + 8000f8c: 615a str r2, [r3, #20] + hspi1.Init.NSS = SPI_NSS_SOFT; + 8000f8e: 4b0e ldr r3, [pc, #56] @ (8000fc8 ) + 8000f90: f44f 7200 mov.w r2, #512 @ 0x200 + 8000f94: 619a str r2, [r3, #24] + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; // Ajuste selon ton horloge + 8000f96: 4b0c ldr r3, [pc, #48] @ (8000fc8 ) + 8000f98: 2210 movs r2, #16 + 8000f9a: 61da str r2, [r3, #28] + hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; + 8000f9c: 4b0a ldr r3, [pc, #40] @ (8000fc8 ) + 8000f9e: 2200 movs r2, #0 + 8000fa0: 621a str r2, [r3, #32] + hspi1.Init.TIMode = SPI_TIMODE_DISABLE; + 8000fa2: 4b09 ldr r3, [pc, #36] @ (8000fc8 ) + 8000fa4: 2200 movs r2, #0 + 8000fa6: 625a str r2, [r3, #36] @ 0x24 + hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + 8000fa8: 4b07 ldr r3, [pc, #28] @ (8000fc8 ) + 8000faa: 2200 movs r2, #0 + 8000fac: 629a str r2, [r3, #40] @ 0x28 + hspi1.Init.CRCPolynomial = 10; + 8000fae: 4b06 ldr r3, [pc, #24] @ (8000fc8 ) + 8000fb0: 220a movs r2, #10 + 8000fb2: 62da str r2, [r3, #44] @ 0x2c + if (HAL_SPI_Init(&hspi1) != HAL_OK) + 8000fb4: 4804 ldr r0, [pc, #16] @ (8000fc8 ) + 8000fb6: f001 fb3b bl 8002630 + 8000fba: 4603 mov r3, r0 + 8000fbc: 2b00 cmp r3, #0 + 8000fbe: d001 beq.n 8000fc4 + { + Error_Handler(); + 8000fc0: f000 f872 bl 80010a8 + } } - 800345e: bf00 nop - 8003460: 3758 adds r7, #88 @ 0x58 - 8003462: 46bd mov sp, r7 - 8003464: bd80 pop {r7, pc} - ... + 8000fc4: bf00 nop + 8000fc6: bd80 pop {r7, pc} + 8000fc8: 200005f4 .word 0x200005f4 + 8000fcc: 40013000 .word 0x40013000 -08003468 : - -static void MX_I2C1_Init(void) -{ - 8003468: b580 push {r7, lr} - 800346a: af00 add r7, sp, #0 - hi2c1.Instance = I2C1; - 800346c: 4b1b ldr r3, [pc, #108] @ (80034dc ) - 800346e: 4a1c ldr r2, [pc, #112] @ (80034e0 ) - 8003470: 601a str r2, [r3, #0] - hi2c1.Init.Timing = 0x10D19CE4; - 8003472: 4b1a ldr r3, [pc, #104] @ (80034dc ) - 8003474: 4a1b ldr r2, [pc, #108] @ (80034e4 ) - 8003476: 605a str r2, [r3, #4] - hi2c1.Init.OwnAddress1 = 0; - 8003478: 4b18 ldr r3, [pc, #96] @ (80034dc ) - 800347a: 2200 movs r2, #0 - 800347c: 609a str r2, [r3, #8] - hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - 800347e: 4b17 ldr r3, [pc, #92] @ (80034dc ) - 8003480: 2201 movs r2, #1 - 8003482: 60da str r2, [r3, #12] - hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - 8003484: 4b15 ldr r3, [pc, #84] @ (80034dc ) - 8003486: 2200 movs r2, #0 - 8003488: 611a str r2, [r3, #16] - hi2c1.Init.OwnAddress2 = 0; - 800348a: 4b14 ldr r3, [pc, #80] @ (80034dc ) - 800348c: 2200 movs r2, #0 - 800348e: 615a str r2, [r3, #20] - hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - 8003490: 4b12 ldr r3, [pc, #72] @ (80034dc ) - 8003492: 2200 movs r2, #0 - 8003494: 619a str r2, [r3, #24] - hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - 8003496: 4b11 ldr r3, [pc, #68] @ (80034dc ) - 8003498: 2200 movs r2, #0 - 800349a: 61da str r2, [r3, #28] - hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - 800349c: 4b0f ldr r3, [pc, #60] @ (80034dc ) - 800349e: 2200 movs r2, #0 - 80034a0: 621a str r2, [r3, #32] - if (HAL_I2C_Init(&hi2c1) != HAL_OK) - 80034a2: 480e ldr r0, [pc, #56] @ (80034dc ) - 80034a4: f001 f8e2 bl 800466c - 80034a8: 4603 mov r3, r0 - 80034aa: 2b00 cmp r3, #0 - 80034ac: d001 beq.n 80034b2 - { - Error_Handler(); - 80034ae: f000 f8d5 bl 800365c - } - - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK) - 80034b2: 2100 movs r1, #0 - 80034b4: 4809 ldr r0, [pc, #36] @ (80034dc ) - 80034b6: f001 ff7d bl 80053b4 - 80034ba: 4603 mov r3, r0 - 80034bc: 2b00 cmp r3, #0 - 80034be: d001 beq.n 80034c4 - { - Error_Handler(); - 80034c0: f000 f8cc bl 800365c - } - - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) - 80034c4: 2100 movs r1, #0 - 80034c6: 4805 ldr r0, [pc, #20] @ (80034dc ) - 80034c8: f001 ffbf bl 800544a - 80034cc: 4603 mov r3, r0 - 80034ce: 2b00 cmp r3, #0 - 80034d0: d001 beq.n 80034d6 - { - Error_Handler(); - 80034d2: f000 f8c3 bl 800365c - } -} - 80034d6: bf00 nop - 80034d8: bd80 pop {r7, pc} - 80034da: bf00 nop - 80034dc: 200001f0 .word 0x200001f0 - 80034e0: 40005400 .word 0x40005400 - 80034e4: 10d19ce4 .word 0x10d19ce4 - -080034e8 : - -static void MX_USART2_UART_Init(void) -{ - 80034e8: b580 push {r7, lr} - 80034ea: af00 add r7, sp, #0 - huart2.Instance = USART2; - 80034ec: 4b14 ldr r3, [pc, #80] @ (8003540 ) - 80034ee: 4a15 ldr r2, [pc, #84] @ (8003544 ) - 80034f0: 601a str r2, [r3, #0] - huart2.Init.BaudRate = 115200; - 80034f2: 4b13 ldr r3, [pc, #76] @ (8003540 ) - 80034f4: f44f 32e1 mov.w r2, #115200 @ 0x1c200 - 80034f8: 605a str r2, [r3, #4] - huart2.Init.WordLength = UART_WORDLENGTH_8B; - 80034fa: 4b11 ldr r3, [pc, #68] @ (8003540 ) - 80034fc: 2200 movs r2, #0 - 80034fe: 609a str r2, [r3, #8] - huart2.Init.StopBits = UART_STOPBITS_1; - 8003500: 4b0f ldr r3, [pc, #60] @ (8003540 ) - 8003502: 2200 movs r2, #0 - 8003504: 60da str r2, [r3, #12] - huart2.Init.Parity = UART_PARITY_NONE; - 8003506: 4b0e ldr r3, [pc, #56] @ (8003540 ) - 8003508: 2200 movs r2, #0 - 800350a: 611a str r2, [r3, #16] - huart2.Init.Mode = UART_MODE_TX_RX; - 800350c: 4b0c ldr r3, [pc, #48] @ (8003540 ) - 800350e: 220c movs r2, #12 - 8003510: 615a str r2, [r3, #20] - huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; - 8003512: 4b0b ldr r3, [pc, #44] @ (8003540 ) - 8003514: 2200 movs r2, #0 - 8003516: 619a str r2, [r3, #24] - huart2.Init.OverSampling = UART_OVERSAMPLING_16; - 8003518: 4b09 ldr r3, [pc, #36] @ (8003540 ) - 800351a: 2200 movs r2, #0 - 800351c: 61da str r2, [r3, #28] - huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - 800351e: 4b08 ldr r3, [pc, #32] @ (8003540 ) - 8003520: 2200 movs r2, #0 - 8003522: 621a str r2, [r3, #32] - huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - 8003524: 4b06 ldr r3, [pc, #24] @ (8003540 ) - 8003526: 2200 movs r2, #0 - 8003528: 625a str r2, [r3, #36] @ 0x24 - if (HAL_UART_Init(&huart2) != HAL_OK) - 800352a: 4805 ldr r0, [pc, #20] @ (8003540 ) - 800352c: f003 f9d4 bl 80068d8 - 8003530: 4603 mov r3, r0 - 8003532: 2b00 cmp r3, #0 - 8003534: d001 beq.n 800353a - { - Error_Handler(); - 8003536: f000 f891 bl 800365c - } -} - 800353a: bf00 nop - 800353c: bd80 pop {r7, pc} - 800353e: bf00 nop - 8003540: 20000244 .word 0x20000244 - 8003544: 40004400 .word 0x40004400 - -08003548 : +08000fd0 : +// ----------- Configuration GPIO (CS, DC, RST) ----------- static void MX_GPIO_Init(void) { - 8003548: b580 push {r7, lr} - 800354a: b08a sub sp, #40 @ 0x28 - 800354c: af00 add r7, sp, #0 - GPIO_InitTypeDef GPIO_InitStruct = {0}; - 800354e: f107 0314 add.w r3, r7, #20 - 8003552: 2200 movs r2, #0 - 8003554: 601a str r2, [r3, #0] - 8003556: 605a str r2, [r3, #4] - 8003558: 609a str r2, [r3, #8] - 800355a: 60da str r2, [r3, #12] - 800355c: 611a str r2, [r3, #16] + 8000fd0: b580 push {r7, lr} + 8000fd2: b086 sub sp, #24 + 8000fd4: af00 add r7, sp, #0 + __HAL_RCC_GPIOB_CLK_ENABLE(); + 8000fd6: 4b14 ldr r3, [pc, #80] @ (8001028 ) + 8000fd8: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000fda: 4a13 ldr r2, [pc, #76] @ (8001028 ) + 8000fdc: f043 0302 orr.w r3, r3, #2 + 8000fe0: 64d3 str r3, [r2, #76] @ 0x4c + 8000fe2: 4b11 ldr r3, [pc, #68] @ (8001028 ) + 8000fe4: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000fe6: f003 0302 and.w r3, r3, #2 + 8000fea: 603b str r3, [r7, #0] + 8000fec: 683b ldr r3, [r7, #0] - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOC_CLK_ENABLE(); - 800355e: 4b3c ldr r3, [pc, #240] @ (8003650 ) - 8003560: 6cdb ldr r3, [r3, #76] @ 0x4c - 8003562: 4a3b ldr r2, [pc, #236] @ (8003650 ) - 8003564: f043 0304 orr.w r3, r3, #4 - 8003568: 64d3 str r3, [r2, #76] @ 0x4c - 800356a: 4b39 ldr r3, [pc, #228] @ (8003650 ) - 800356c: 6cdb ldr r3, [r3, #76] @ 0x4c - 800356e: f003 0304 and.w r3, r3, #4 - 8003572: 613b str r3, [r7, #16] - 8003574: 693b ldr r3, [r7, #16] - __HAL_RCC_GPIOH_CLK_ENABLE(); - 8003576: 4b36 ldr r3, [pc, #216] @ (8003650 ) - 8003578: 6cdb ldr r3, [r3, #76] @ 0x4c - 800357a: 4a35 ldr r2, [pc, #212] @ (8003650 ) - 800357c: f043 0380 orr.w r3, r3, #128 @ 0x80 - 8003580: 64d3 str r3, [r2, #76] @ 0x4c - 8003582: 4b33 ldr r3, [pc, #204] @ (8003650 ) - 8003584: 6cdb ldr r3, [r3, #76] @ 0x4c - 8003586: f003 0380 and.w r3, r3, #128 @ 0x80 - 800358a: 60fb str r3, [r7, #12] - 800358c: 68fb ldr r3, [r7, #12] - __HAL_RCC_GPIOA_CLK_ENABLE(); - 800358e: 4b30 ldr r3, [pc, #192] @ (8003650 ) - 8003590: 6cdb ldr r3, [r3, #76] @ 0x4c - 8003592: 4a2f ldr r2, [pc, #188] @ (8003650 ) - 8003594: f043 0301 orr.w r3, r3, #1 - 8003598: 64d3 str r3, [r2, #76] @ 0x4c - 800359a: 4b2d ldr r3, [pc, #180] @ (8003650 ) - 800359c: 6cdb ldr r3, [r3, #76] @ 0x4c - 800359e: f003 0301 and.w r3, r3, #1 - 80035a2: 60bb str r3, [r7, #8] - 80035a4: 68bb ldr r3, [r7, #8] - __HAL_RCC_GPIOB_CLK_ENABLE(); - 80035a6: 4b2a ldr r3, [pc, #168] @ (8003650 ) - 80035a8: 6cdb ldr r3, [r3, #76] @ 0x4c - 80035aa: 4a29 ldr r2, [pc, #164] @ (8003650 ) - 80035ac: f043 0302 orr.w r3, r3, #2 - 80035b0: 64d3 str r3, [r2, #76] @ 0x4c - 80035b2: 4b27 ldr r3, [pc, #156] @ (8003650 ) - 80035b4: 6cdb ldr r3, [r3, #76] @ 0x4c - 80035b6: f003 0302 and.w r3, r3, #2 - 80035ba: 607b str r3, [r7, #4] - 80035bc: 687b ldr r3, [r7, #4] + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8000fee: 1d3b adds r3, r7, #4 + 8000ff0: 2200 movs r2, #0 + 8000ff2: 601a str r2, [r3, #0] + 8000ff4: 605a str r2, [r3, #4] + 8000ff6: 609a str r2, [r3, #8] + 8000ff8: 60da str r2, [r3, #12] + 8000ffa: 611a str r2, [r3, #16] - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOA, SMPS_EN_Pin|SMPS_V1_Pin|SMPS_SW_Pin, GPIO_PIN_RESET); - 80035be: 2200 movs r2, #0 - 80035c0: 21b0 movs r1, #176 @ 0xb0 - 80035c2: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 - 80035c6: f001 f839 bl 800463c + // CS, DC, RST pins en sortie + GPIO_InitStruct.Pin = GC9A01_CS_Pin | GC9A01_DC_Pin | GC9A01_RST_Pin; + 8000ffc: 2307 movs r3, #7 + 8000ffe: 607b str r3, [r7, #4] + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + 8001000: 2301 movs r3, #1 + 8001002: 60bb str r3, [r7, #8] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 8001004: 2300 movs r3, #0 + 8001006: 60fb str r3, [r7, #12] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 8001008: 2300 movs r3, #0 + 800100a: 613b str r3, [r7, #16] + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + 800100c: 1d3b adds r3, r7, #4 + 800100e: 4619 mov r1, r3 + 8001010: 4806 ldr r0, [pc, #24] @ (800102c ) + 8001012: f000 fb6d bl 80016f0 - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); - 80035ca: 2200 movs r2, #0 - 80035cc: f44f 5100 mov.w r1, #8192 @ 0x2000 - 80035d0: 4820 ldr r0, [pc, #128] @ (8003654 ) - 80035d2: f001 f833 bl 800463c - - /*Configure GPIO pin : B1_Pin */ - GPIO_InitStruct.Pin = B1_Pin; - 80035d6: f44f 5300 mov.w r3, #8192 @ 0x2000 - 80035da: 617b str r3, [r7, #20] - GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; - 80035dc: f44f 1304 mov.w r3, #2162688 @ 0x210000 - 80035e0: 61bb str r3, [r7, #24] - GPIO_InitStruct.Pull = GPIO_NOPULL; - 80035e2: 2300 movs r3, #0 - 80035e4: 61fb str r3, [r7, #28] - HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct); - 80035e6: f107 0314 add.w r3, r7, #20 - 80035ea: 4619 mov r1, r3 - 80035ec: 481a ldr r0, [pc, #104] @ (8003658 ) - 80035ee: f000 feab bl 8004348 - - /*Configure GPIO pins : SMPS_EN_Pin SMPS_V1_Pin SMPS_SW_Pin */ - GPIO_InitStruct.Pin = SMPS_EN_Pin|SMPS_V1_Pin|SMPS_SW_Pin; - 80035f2: 23b0 movs r3, #176 @ 0xb0 - 80035f4: 617b str r3, [r7, #20] - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 80035f6: 2301 movs r3, #1 - 80035f8: 61bb str r3, [r7, #24] - GPIO_InitStruct.Pull = GPIO_NOPULL; - 80035fa: 2300 movs r3, #0 - 80035fc: 61fb str r3, [r7, #28] - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80035fe: 2300 movs r3, #0 - 8003600: 623b str r3, [r7, #32] - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8003602: f107 0314 add.w r3, r7, #20 - 8003606: 4619 mov r1, r3 - 8003608: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 - 800360c: f000 fe9c bl 8004348 - - /*Configure GPIO pin : SMPS_PG_Pin */ - GPIO_InitStruct.Pin = SMPS_PG_Pin; - 8003610: 2340 movs r3, #64 @ 0x40 - 8003612: 617b str r3, [r7, #20] - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8003614: 2300 movs r3, #0 - 8003616: 61bb str r3, [r7, #24] - GPIO_InitStruct.Pull = GPIO_PULLUP; - 8003618: 2301 movs r3, #1 - 800361a: 61fb str r3, [r7, #28] - HAL_GPIO_Init(SMPS_PG_GPIO_Port, &GPIO_InitStruct); - 800361c: f107 0314 add.w r3, r7, #20 - 8003620: 4619 mov r1, r3 - 8003622: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 - 8003626: f000 fe8f bl 8004348 - - /*Configure GPIO pin : LD4_Pin */ - GPIO_InitStruct.Pin = LD4_Pin; - 800362a: f44f 5300 mov.w r3, #8192 @ 0x2000 - 800362e: 617b str r3, [r7, #20] - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8003630: 2301 movs r3, #1 - 8003632: 61bb str r3, [r7, #24] - GPIO_InitStruct.Pull = GPIO_NOPULL; - 8003634: 2300 movs r3, #0 - 8003636: 61fb str r3, [r7, #28] - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8003638: 2300 movs r3, #0 - 800363a: 623b str r3, [r7, #32] - HAL_GPIO_Init(LD4_GPIO_Port, &GPIO_InitStruct); - 800363c: f107 0314 add.w r3, r7, #20 - 8003640: 4619 mov r1, r3 - 8003642: 4804 ldr r0, [pc, #16] @ (8003654 ) - 8003644: f000 fe80 bl 8004348 + // Mettre CS, DC, RST à 1 par défaut (CS inactif) + HAL_GPIO_WritePin(GPIOB, GC9A01_CS_Pin | GC9A01_DC_Pin | GC9A01_RST_Pin, GPIO_PIN_SET); + 8001016: 2201 movs r2, #1 + 8001018: 2107 movs r1, #7 + 800101a: 4804 ldr r0, [pc, #16] @ (800102c ) + 800101c: f000 fce2 bl 80019e4 } - 8003648: bf00 nop - 800364a: 3728 adds r7, #40 @ 0x28 - 800364c: 46bd mov sp, r7 - 800364e: bd80 pop {r7, pc} - 8003650: 40021000 .word 0x40021000 - 8003654: 48000400 .word 0x48000400 - 8003658: 48000800 .word 0x48000800 + 8001020: bf00 nop + 8001022: 3718 adds r7, #24 + 8001024: 46bd mov sp, r7 + 8001026: bd80 pop {r7, pc} + 8001028: 40021000 .word 0x40021000 + 800102c: 48000400 .word 0x48000400 -0800365c : +08001030 : +// ----------- Configuration horloge (exemple) ----------- +void SystemClock_Config(void) +{ + 8001030: b580 push {r7, lr} + 8001032: b096 sub sp, #88 @ 0x58 + 8001034: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 8001036: f107 0314 add.w r3, r7, #20 + 800103a: 2244 movs r2, #68 @ 0x44 + 800103c: 2100 movs r1, #0 + 800103e: 4618 mov r0, r3 + 8001040: f002 fbcf bl 80037e2 + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 8001044: 463b mov r3, r7 + 8001046: 2200 movs r2, #0 + 8001048: 601a str r2, [r3, #0] + 800104a: 605a str r2, [r3, #4] + 800104c: 609a str r2, [r3, #8] + 800104e: 60da str r2, [r3, #12] + 8001050: 611a str r2, [r3, #16] + + // Configuration de l'oscillateur + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + 8001052: 2302 movs r3, #2 + 8001054: 617b str r3, [r7, #20] + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 8001056: f44f 7380 mov.w r3, #256 @ 0x100 + 800105a: 623b str r3, [r7, #32] + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + 800105c: 2340 movs r3, #64 @ 0x40 + 800105e: 627b str r3, [r7, #36] @ 0x24 + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + 8001060: 2300 movs r3, #0 + 8001062: 63fb str r3, [r7, #60] @ 0x3c + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 8001064: f107 0314 add.w r3, r7, #20 + 8001068: 4618 mov r0, r3 + 800106a: f000 fce1 bl 8001a30 + 800106e: 4603 mov r3, r0 + 8001070: 2b00 cmp r3, #0 + 8001072: d001 beq.n 8001078 + { + Error_Handler(); + 8001074: f000 f818 bl 80010a8 + } + + // Configuration des horloges CPU, AHB et APB + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 8001078: 230f movs r3, #15 + 800107a: 603b str r3, [r7, #0] + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; + 800107c: 2301 movs r3, #1 + 800107e: 607b str r3, [r7, #4] + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 8001080: 2300 movs r3, #0 + 8001082: 60bb str r3, [r7, #8] + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 8001084: 2300 movs r3, #0 + 8001086: 60fb str r3, [r7, #12] + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 8001088: 2300 movs r3, #0 + 800108a: 613b str r3, [r7, #16] + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + 800108c: 463b mov r3, r7 + 800108e: 2100 movs r1, #0 + 8001090: 4618 mov r0, r3 + 8001092: f001 f8e1 bl 8002258 + 8001096: 4603 mov r3, r0 + 8001098: 2b00 cmp r3, #0 + 800109a: d001 beq.n 80010a0 + { + Error_Handler(); + 800109c: f000 f804 bl 80010a8 + } +} + 80010a0: bf00 nop + 80010a2: 3758 adds r7, #88 @ 0x58 + 80010a4: 46bd mov sp, r7 + 80010a6: bd80 pop {r7, pc} + +080010a8 : + +// En cas d'erreur void Error_Handler(void) { - 800365c: b480 push {r7} - 800365e: af00 add r7, sp, #0 - \details Disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__STATIC_FORCEINLINE void __disable_irq(void) -{ - __ASM volatile ("cpsid i" : : : "memory"); - 8003660: b672 cpsid i -} - 8003662: bf00 nop - __disable_irq(); - while (1) - 8003664: bf00 nop - 8003666: e7fd b.n 8003664 + 80010a8: b480 push {r7} + 80010aa: af00 add r7, sp, #0 + while(1) + 80010ac: bf00 nop + 80010ae: e7fd b.n 80010ac -08003668 : - -//------------------------------------------------------------------------------ -// Fonctions publiques -//------------------------------------------------------------------------------ - -void Moto_InitData(MotoData_t *data) { - 8003668: b580 push {r7, lr} - 800366a: b082 sub sp, #8 - 800366c: af00 add r7, sp, #0 - 800366e: 6078 str r0, [r7, #4] - memset(data, 0, sizeof(MotoData_t)); - 8003670: 2224 movs r2, #36 @ 0x24 - 8003672: 2100 movs r1, #0 - 8003674: 6878 ldr r0, [r7, #4] - 8003676: f004 fc4a bl 8007f0e - data->state = MOTO_STATE_NORMAL; - 800367a: 687b ldr r3, [r7, #4] - 800367c: 2200 movs r2, #0 - 800367e: 761a strb r2, [r3, #24] - data->is_initializing = true; - 8003680: 687b ldr r3, [r7, #4] - 8003682: 2201 movs r2, #1 - 8003684: 765a strb r2, [r3, #25] - data->last_update_time = 0; - 8003686: 687b ldr r3, [r7, #4] - 8003688: 2200 movs r2, #0 - 800368a: 621a str r2, [r3, #32] -} - 800368c: bf00 nop - 800368e: 3708 adds r7, #8 - 8003690: 46bd mov sp, r7 - 8003692: bd80 pop {r7, pc} - -08003694 : - -void Moto_UpdateState(MotoData_t *data, float roll, float pitch, float yaw, - float gyro_x, float gyro_y, float gyro_z) { - 8003694: b580 push {r7, lr} - 8003696: b08a sub sp, #40 @ 0x28 - 8003698: af00 add r7, sp, #0 - 800369a: 61f8 str r0, [r7, #28] - 800369c: ed87 0a06 vstr s0, [r7, #24] - 80036a0: edc7 0a05 vstr s1, [r7, #20] - 80036a4: ed87 1a04 vstr s2, [r7, #16] - 80036a8: edc7 1a03 vstr s3, [r7, #12] - 80036ac: ed87 2a02 vstr s4, [r7, #8] - 80036b0: edc7 2a01 vstr s5, [r7, #4] - - // Mise à jour des angles bruts - data->roll = roll; - 80036b4: 69fb ldr r3, [r7, #28] - 80036b6: 69ba ldr r2, [r7, #24] - 80036b8: 601a str r2, [r3, #0] - data->pitch = pitch; - 80036ba: 69fb ldr r3, [r7, #28] - 80036bc: 697a ldr r2, [r7, #20] - 80036be: 605a str r2, [r3, #4] - data->yaw = yaw; - 80036c0: 69fb ldr r3, [r7, #28] - 80036c2: 693a ldr r2, [r7, #16] - 80036c4: 609a str r2, [r3, #8] - - // Calcul de la magnitude de la vitesse angulaire - float gyro_magnitude = sqrtf(gyro_x*gyro_x + gyro_y*gyro_y + gyro_z*gyro_z); - 80036c6: edd7 7a03 vldr s15, [r7, #12] - 80036ca: ee27 7aa7 vmul.f32 s14, s15, s15 - 80036ce: edd7 7a02 vldr s15, [r7, #8] - 80036d2: ee67 7aa7 vmul.f32 s15, s15, s15 - 80036d6: ee37 7a27 vadd.f32 s14, s14, s15 - 80036da: edd7 7a01 vldr s15, [r7, #4] - 80036de: ee67 7aa7 vmul.f32 s15, s15, s15 - 80036e2: ee77 7a27 vadd.f32 s15, s14, s15 - 80036e6: eeb0 0a67 vmov.f32 s0, s15 - 80036ea: f006 fd65 bl 800a1b8 - 80036ee: ed87 0a09 vstr s0, [r7, #36] @ 0x24 - - // Détection d'état prioritaire : crash possible - if (Moto_DetectCrash(data, gyro_magnitude)) { - 80036f2: ed97 0a09 vldr s0, [r7, #36] @ 0x24 - 80036f6: 69f8 ldr r0, [r7, #28] - 80036f8: f000 f99e bl 8003a38 - 80036fc: 4603 mov r3, r0 - 80036fe: 2b00 cmp r3, #0 - 8003700: d003 beq.n 800370a - data->state = MOTO_STATE_POSSIBLE_CRASH; - 8003702: 69fb ldr r3, [r7, #28] - 8003704: 2206 movs r2, #6 - 8003706: 761a strb r2, [r3, #24] - return; - 8003708: e04c b.n 80037a4 - } - - // Détection de wheelie/stoppie - if (pitch > MOTO_PITCH_WHEELIE_THRESHOLD) { - 800370a: edd7 7a05 vldr s15, [r7, #20] - 800370e: eeb3 7a09 vmov.f32 s14, #57 @ 0x41c80000 25.0 - 8003712: eef4 7ac7 vcmpe.f32 s15, s14 - 8003716: eef1 fa10 vmrs APSR_nzcv, fpscr - 800371a: dd03 ble.n 8003724 - data->state = MOTO_STATE_WHEELIE; - 800371c: 69fb ldr r3, [r7, #28] - 800371e: 2203 movs r2, #3 - 8003720: 761a strb r2, [r3, #24] - 8003722: e03f b.n 80037a4 - } else if (pitch < MOTO_PITCH_STOPPIE_THRESHOLD) { - 8003724: edd7 7a05 vldr s15, [r7, #20] - 8003728: eebb 7a09 vmov.f32 s14, #185 @ 0xc1c80000 -25.0 - 800372c: eef4 7ac7 vcmpe.f32 s15, s14 - 8003730: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003734: d503 bpl.n 800373e - data->state = MOTO_STATE_STOPPIE; - 8003736: 69fb ldr r3, [r7, #28] - 8003738: 2204 movs r2, #4 - 800373a: 761a strb r2, [r3, #24] - 800373c: e032 b.n 80037a4 - } - // Détection de virage rapide - else if (fabsf(gyro_z) > MOTO_GYRO_RAPID_TURN_THRESHOLD) { - 800373e: edd7 7a01 vldr s15, [r7, #4] - 8003742: eef0 7ae7 vabs.f32 s15, s15 - 8003746: ed9f 7a19 vldr s14, [pc, #100] @ 80037ac - 800374a: eef4 7ac7 vcmpe.f32 s15, s14 - 800374e: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003752: dd03 ble.n 800375c - data->state = MOTO_STATE_RAPID_TURN; - 8003754: 69fb ldr r3, [r7, #28] - 8003756: 2205 movs r2, #5 - 8003758: 761a strb r2, [r3, #24] - 800375a: e023 b.n 80037a4 - } - // Détection d'inclinaison dangereuse - else if (fabsf(roll) > MOTO_ROLL_DANGER_THRESHOLD) { - 800375c: edd7 7a06 vldr s15, [r7, #24] - 8003760: eef0 7ae7 vabs.f32 s15, s15 - 8003764: ed9f 7a12 vldr s14, [pc, #72] @ 80037b0 - 8003768: eef4 7ac7 vcmpe.f32 s15, s14 - 800376c: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003770: dd03 ble.n 800377a - data->state = MOTO_STATE_DANGER; - 8003772: 69fb ldr r3, [r7, #28] - 8003774: 2202 movs r2, #2 - 8003776: 761a strb r2, [r3, #24] - 8003778: e014 b.n 80037a4 - } - // Détection d'inclinaison d'avertissement - else if (fabsf(roll) > MOTO_ROLL_WARNING_THRESHOLD) { - 800377a: edd7 7a06 vldr s15, [r7, #24] - 800377e: eef0 7ae7 vabs.f32 s15, s15 - 8003782: eeb3 7a04 vmov.f32 s14, #52 @ 0x41a00000 20.0 - 8003786: eef4 7ac7 vcmpe.f32 s15, s14 - 800378a: eef1 fa10 vmrs APSR_nzcv, fpscr - 800378e: dd03 ble.n 8003798 - data->state = MOTO_STATE_WARNING; - 8003790: 69fb ldr r3, [r7, #28] - 8003792: 2201 movs r2, #1 - 8003794: 761a strb r2, [r3, #24] - 8003796: e005 b.n 80037a4 - } - // État normal - else { - data->state = MOTO_STATE_NORMAL; - 8003798: 69fb ldr r3, [r7, #28] - 800379a: 2200 movs r2, #0 - 800379c: 761a strb r2, [r3, #24] - data->crash_detect_counter = 0; // Reset compteur crash - 800379e: 69fb ldr r3, [r7, #28] - 80037a0: 2200 movs r2, #0 - 80037a2: 61da str r2, [r3, #28] - } -} - 80037a4: 3728 adds r7, #40 @ 0x28 - 80037a6: 46bd mov sp, r7 - 80037a8: bd80 pop {r7, pc} - 80037aa: bf00 nop - 80037ac: 42c80000 .word 0x42c80000 - 80037b0: 420c0000 .word 0x420c0000 - -080037b4 : - -void Moto_FilterAngles(MotoData_t *data) { - 80037b4: b480 push {r7} - 80037b6: b083 sub sp, #12 - 80037b8: af00 add r7, sp, #0 - 80037ba: 6078 str r0, [r7, #4] - // Filtre passe-bas simple pour lisser l'affichage - data->roll_filtered = MOTO_ANGLE_FILTER_ALPHA * data->roll + - 80037bc: 687b ldr r3, [r7, #4] - 80037be: edd3 7a00 vldr s15, [r3] - 80037c2: ed9f 7a1e vldr s14, [pc, #120] @ 800383c - 80037c6: ee27 7a87 vmul.f32 s14, s15, s14 - (1.0f - MOTO_ANGLE_FILTER_ALPHA) * data->roll_filtered; - 80037ca: 687b ldr r3, [r7, #4] - 80037cc: edd3 7a03 vldr s15, [r3, #12] - 80037d0: eddf 6a1b vldr s13, [pc, #108] @ 8003840 - 80037d4: ee67 7aa6 vmul.f32 s15, s15, s13 - data->roll_filtered = MOTO_ANGLE_FILTER_ALPHA * data->roll + - 80037d8: ee77 7a27 vadd.f32 s15, s14, s15 - 80037dc: 687b ldr r3, [r7, #4] - 80037de: edc3 7a03 vstr s15, [r3, #12] - - data->pitch_filtered = MOTO_ANGLE_FILTER_ALPHA * data->pitch + - 80037e2: 687b ldr r3, [r7, #4] - 80037e4: edd3 7a01 vldr s15, [r3, #4] - 80037e8: ed9f 7a14 vldr s14, [pc, #80] @ 800383c - 80037ec: ee27 7a87 vmul.f32 s14, s15, s14 - (1.0f - MOTO_ANGLE_FILTER_ALPHA) * data->pitch_filtered; - 80037f0: 687b ldr r3, [r7, #4] - 80037f2: edd3 7a04 vldr s15, [r3, #16] - 80037f6: eddf 6a12 vldr s13, [pc, #72] @ 8003840 - 80037fa: ee67 7aa6 vmul.f32 s15, s15, s13 - data->pitch_filtered = MOTO_ANGLE_FILTER_ALPHA * data->pitch + - 80037fe: ee77 7a27 vadd.f32 s15, s14, s15 - 8003802: 687b ldr r3, [r7, #4] - 8003804: edc3 7a04 vstr s15, [r3, #16] - - data->yaw_filtered = MOTO_ANGLE_FILTER_ALPHA * data->yaw + - 8003808: 687b ldr r3, [r7, #4] - 800380a: edd3 7a02 vldr s15, [r3, #8] - 800380e: ed9f 7a0b vldr s14, [pc, #44] @ 800383c - 8003812: ee27 7a87 vmul.f32 s14, s15, s14 - (1.0f - MOTO_ANGLE_FILTER_ALPHA) * data->yaw_filtered; - 8003816: 687b ldr r3, [r7, #4] - 8003818: edd3 7a05 vldr s15, [r3, #20] - 800381c: eddf 6a08 vldr s13, [pc, #32] @ 8003840 - 8003820: ee67 7aa6 vmul.f32 s15, s15, s13 - data->yaw_filtered = MOTO_ANGLE_FILTER_ALPHA * data->yaw + - 8003824: ee77 7a27 vadd.f32 s15, s14, s15 - 8003828: 687b ldr r3, [r7, #4] - 800382a: edc3 7a05 vstr s15, [r3, #20] -} - 800382e: bf00 nop - 8003830: 370c adds r7, #12 - 8003832: 46bd mov sp, r7 - 8003834: f85d 7b04 ldr.w r7, [sp], #4 - 8003838: 4770 bx lr - 800383a: bf00 nop - 800383c: 3e4ccccd .word 0x3e4ccccd - 8003840: 3f4ccccd .word 0x3f4ccccd - -08003844 : - -const char* Moto_GetStateString(MotoState_t state) { - 8003844: b480 push {r7} - 8003846: b083 sub sp, #12 - 8003848: af00 add r7, sp, #0 - 800384a: 4603 mov r3, r0 - 800384c: 71fb strb r3, [r7, #7] - switch (state) { - 800384e: 79fb ldrb r3, [r7, #7] - 8003850: 2b06 cmp r3, #6 - 8003852: d81f bhi.n 8003894 - 8003854: a201 add r2, pc, #4 @ (adr r2, 800385c ) - 8003856: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800385a: bf00 nop - 800385c: 08003879 .word 0x08003879 - 8003860: 0800387d .word 0x0800387d - 8003864: 08003881 .word 0x08003881 - 8003868: 08003885 .word 0x08003885 - 800386c: 08003889 .word 0x08003889 - 8003870: 0800388d .word 0x0800388d - 8003874: 08003891 .word 0x08003891 - case MOTO_STATE_NORMAL: return "NORMAL "; - 8003878: 4b0a ldr r3, [pc, #40] @ (80038a4 ) - 800387a: e00c b.n 8003896 - case MOTO_STATE_WARNING: return "ATTENTION "; - 800387c: 4b0a ldr r3, [pc, #40] @ (80038a8 ) - 800387e: e00a b.n 8003896 - case MOTO_STATE_DANGER: return "DANGER "; - 8003880: 4b0a ldr r3, [pc, #40] @ (80038ac ) - 8003882: e008 b.n 8003896 - case MOTO_STATE_WHEELIE: return "WHEELIE "; - 8003884: 4b0a ldr r3, [pc, #40] @ (80038b0 ) - 8003886: e006 b.n 8003896 - case MOTO_STATE_STOPPIE: return "STOPPIE "; - 8003888: 4b0a ldr r3, [pc, #40] @ (80038b4 ) - 800388a: e004 b.n 8003896 - case MOTO_STATE_RAPID_TURN: return "VIRAGE RAPIDE "; - 800388c: 4b0a ldr r3, [pc, #40] @ (80038b8 ) - 800388e: e002 b.n 8003896 - case MOTO_STATE_POSSIBLE_CRASH: return "CHUTE POSSIBLE"; - 8003890: 4b0a ldr r3, [pc, #40] @ (80038bc ) - 8003892: e000 b.n 8003896 - default: return "INCONNU"; - 8003894: 4b0a ldr r3, [pc, #40] @ (80038c0 ) - } -} - 8003896: 4618 mov r0, r3 - 8003898: 370c adds r7, #12 - 800389a: 46bd mov sp, r7 - 800389c: f85d 7b04 ldr.w r7, [sp], #4 - 80038a0: 4770 bx lr - 80038a2: bf00 nop - 80038a4: 0800b7bc .word 0x0800b7bc - 80038a8: 0800b7cc .word 0x0800b7cc - 80038ac: 0800b7dc .word 0x0800b7dc - 80038b0: 0800b7ec .word 0x0800b7ec - 80038b4: 0800b7fc .word 0x0800b7fc - 80038b8: 0800b80c .word 0x0800b80c - 80038bc: 0800b81c .word 0x0800b81c - 80038c0: 0800b82c .word 0x0800b82c - -080038c4 : - -void Moto_UpdateStats(MotoStats_t *stats, const MotoData_t *data, - float gyro_x, float gyro_y, float gyro_z) { - 80038c4: b480 push {r7} - 80038c6: b087 sub sp, #28 - 80038c8: af00 add r7, sp, #0 - 80038ca: 6178 str r0, [r7, #20] - 80038cc: 6139 str r1, [r7, #16] - 80038ce: ed87 0a03 vstr s0, [r7, #12] - 80038d2: edc7 0a02 vstr s1, [r7, #8] - 80038d6: ed87 1a01 vstr s2, [r7, #4] - - stats->total_samples++; - 80038da: 697b ldr r3, [r7, #20] - 80038dc: 69db ldr r3, [r3, #28] - 80038de: 1c5a adds r2, r3, #1 - 80038e0: 697b ldr r3, [r7, #20] - 80038e2: 61da str r2, [r3, #28] - - // Mise à jour des extremums d'angles - if (data->roll > stats->max_roll) stats->max_roll = data->roll; - 80038e4: 693b ldr r3, [r7, #16] - 80038e6: ed93 7a00 vldr s14, [r3] - 80038ea: 697b ldr r3, [r7, #20] - 80038ec: edd3 7a00 vldr s15, [r3] - 80038f0: eeb4 7ae7 vcmpe.f32 s14, s15 - 80038f4: eef1 fa10 vmrs APSR_nzcv, fpscr - 80038f8: dd03 ble.n 8003902 - 80038fa: 693b ldr r3, [r7, #16] - 80038fc: 681a ldr r2, [r3, #0] - 80038fe: 697b ldr r3, [r7, #20] - 8003900: 601a str r2, [r3, #0] - if (data->roll < stats->min_roll) stats->min_roll = data->roll; - 8003902: 693b ldr r3, [r7, #16] - 8003904: ed93 7a00 vldr s14, [r3] - 8003908: 697b ldr r3, [r7, #20] - 800390a: edd3 7a01 vldr s15, [r3, #4] - 800390e: eeb4 7ae7 vcmpe.f32 s14, s15 - 8003912: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003916: d503 bpl.n 8003920 - 8003918: 693b ldr r3, [r7, #16] - 800391a: 681a ldr r2, [r3, #0] - 800391c: 697b ldr r3, [r7, #20] - 800391e: 605a str r2, [r3, #4] - if (data->pitch > stats->max_pitch) stats->max_pitch = data->pitch; - 8003920: 693b ldr r3, [r7, #16] - 8003922: ed93 7a01 vldr s14, [r3, #4] - 8003926: 697b ldr r3, [r7, #20] - 8003928: edd3 7a02 vldr s15, [r3, #8] - 800392c: eeb4 7ae7 vcmpe.f32 s14, s15 - 8003930: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003934: dd03 ble.n 800393e - 8003936: 693b ldr r3, [r7, #16] - 8003938: 685a ldr r2, [r3, #4] - 800393a: 697b ldr r3, [r7, #20] - 800393c: 609a str r2, [r3, #8] - if (data->pitch < stats->min_pitch) stats->min_pitch = data->pitch; - 800393e: 693b ldr r3, [r7, #16] - 8003940: ed93 7a01 vldr s14, [r3, #4] - 8003944: 697b ldr r3, [r7, #20] - 8003946: edd3 7a03 vldr s15, [r3, #12] - 800394a: eeb4 7ae7 vcmpe.f32 s14, s15 - 800394e: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003952: d503 bpl.n 800395c - 8003954: 693b ldr r3, [r7, #16] - 8003956: 685a ldr r2, [r3, #4] - 8003958: 697b ldr r3, [r7, #20] - 800395a: 60da str r2, [r3, #12] - - // Mise à jour des extremums de vitesse angulaire - if (fabsf(gyro_x) > stats->max_gyro_x) stats->max_gyro_x = fabsf(gyro_x); - 800395c: edd7 7a03 vldr s15, [r7, #12] - 8003960: eeb0 7ae7 vabs.f32 s14, s15 - 8003964: 697b ldr r3, [r7, #20] - 8003966: edd3 7a04 vldr s15, [r3, #16] - 800396a: eeb4 7ae7 vcmpe.f32 s14, s15 - 800396e: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003972: dd06 ble.n 8003982 - 8003974: edd7 7a03 vldr s15, [r7, #12] - 8003978: eef0 7ae7 vabs.f32 s15, s15 - 800397c: 697b ldr r3, [r7, #20] - 800397e: edc3 7a04 vstr s15, [r3, #16] - if (fabsf(gyro_y) > stats->max_gyro_y) stats->max_gyro_y = fabsf(gyro_y); - 8003982: edd7 7a02 vldr s15, [r7, #8] - 8003986: eeb0 7ae7 vabs.f32 s14, s15 - 800398a: 697b ldr r3, [r7, #20] - 800398c: edd3 7a05 vldr s15, [r3, #20] - 8003990: eeb4 7ae7 vcmpe.f32 s14, s15 - 8003994: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003998: dd06 ble.n 80039a8 - 800399a: edd7 7a02 vldr s15, [r7, #8] - 800399e: eef0 7ae7 vabs.f32 s15, s15 - 80039a2: 697b ldr r3, [r7, #20] - 80039a4: edc3 7a05 vstr s15, [r3, #20] - if (fabsf(gyro_z) > stats->max_gyro_z) stats->max_gyro_z = fabsf(gyro_z); - 80039a8: edd7 7a01 vldr s15, [r7, #4] - 80039ac: eeb0 7ae7 vabs.f32 s14, s15 - 80039b0: 697b ldr r3, [r7, #20] - 80039b2: edd3 7a06 vldr s15, [r3, #24] - 80039b6: eeb4 7ae7 vcmpe.f32 s14, s15 - 80039ba: eef1 fa10 vmrs APSR_nzcv, fpscr - 80039be: dd06 ble.n 80039ce - 80039c0: edd7 7a01 vldr s15, [r7, #4] - 80039c4: eef0 7ae7 vabs.f32 s15, s15 - 80039c8: 697b ldr r3, [r7, #20] - 80039ca: edc3 7a06 vstr s15, [r3, #24] - - // Comptage des états d'alerte - if (data->state == MOTO_STATE_WARNING) stats->warning_count++; - 80039ce: 693b ldr r3, [r7, #16] - 80039d0: 7e1b ldrb r3, [r3, #24] - 80039d2: 2b01 cmp r3, #1 - 80039d4: d104 bne.n 80039e0 - 80039d6: 697b ldr r3, [r7, #20] - 80039d8: 6a1b ldr r3, [r3, #32] - 80039da: 1c5a adds r2, r3, #1 - 80039dc: 697b ldr r3, [r7, #20] - 80039de: 621a str r2, [r3, #32] - if (data->state == MOTO_STATE_DANGER || - 80039e0: 693b ldr r3, [r7, #16] - 80039e2: 7e1b ldrb r3, [r3, #24] - 80039e4: 2b02 cmp r3, #2 - 80039e6: d003 beq.n 80039f0 - data->state == MOTO_STATE_POSSIBLE_CRASH) stats->danger_count++; - 80039e8: 693b ldr r3, [r7, #16] - 80039ea: 7e1b ldrb r3, [r3, #24] - if (data->state == MOTO_STATE_DANGER || - 80039ec: 2b06 cmp r3, #6 - 80039ee: d104 bne.n 80039fa - data->state == MOTO_STATE_POSSIBLE_CRASH) stats->danger_count++; - 80039f0: 697b ldr r3, [r7, #20] - 80039f2: 6a5b ldr r3, [r3, #36] @ 0x24 - 80039f4: 1c5a adds r2, r3, #1 - 80039f6: 697b ldr r3, [r7, #20] - 80039f8: 625a str r2, [r3, #36] @ 0x24 -} - 80039fa: bf00 nop - 80039fc: 371c adds r7, #28 - 80039fe: 46bd mov sp, r7 - 8003a00: f85d 7b04 ldr.w r7, [sp], #4 - 8003a04: 4770 bx lr - -08003a06 : - -void Moto_CalibrateMagnetometer(float *mx, float *my, float *mz) { - 8003a06: b480 push {r7} - 8003a08: b085 sub sp, #20 - 8003a0a: af00 add r7, sp, #0 - 8003a0c: 60f8 str r0, [r7, #12] - 8003a0e: 60b9 str r1, [r7, #8] - 8003a10: 607a str r2, [r7, #4] - // Application des offsets et facteurs d'échelle - *mx = (*mx - MOTO_MAG_OFFSET_X) * MOTO_MAG_SCALE_X; - 8003a12: 68fb ldr r3, [r7, #12] - 8003a14: 681a ldr r2, [r3, #0] - 8003a16: 68fb ldr r3, [r7, #12] - 8003a18: 601a str r2, [r3, #0] - *my = (*my - MOTO_MAG_OFFSET_Y) * MOTO_MAG_SCALE_Y; - 8003a1a: 68bb ldr r3, [r7, #8] - 8003a1c: 681a ldr r2, [r3, #0] - 8003a1e: 68bb ldr r3, [r7, #8] - 8003a20: 601a str r2, [r3, #0] - *mz = (*mz - MOTO_MAG_OFFSET_Z) * MOTO_MAG_SCALE_Z; - 8003a22: 687b ldr r3, [r7, #4] - 8003a24: 681a ldr r2, [r3, #0] - 8003a26: 687b ldr r3, [r7, #4] - 8003a28: 601a str r2, [r3, #0] -} - 8003a2a: bf00 nop - 8003a2c: 3714 adds r7, #20 - 8003a2e: 46bd mov sp, r7 - 8003a30: f85d 7b04 ldr.w r7, [sp], #4 - 8003a34: 4770 bx lr - ... - -08003a38 : - -bool Moto_DetectCrash(MotoData_t *data, float gyro_magnitude) { - 8003a38: b480 push {r7} - 8003a3a: b083 sub sp, #12 - 8003a3c: af00 add r7, sp, #0 - 8003a3e: 6078 str r0, [r7, #4] - 8003a40: ed87 0a00 vstr s0, [r7] - if (gyro_magnitude > MOTO_GYRO_CRASH_THRESHOLD) { - 8003a44: edd7 7a00 vldr s15, [r7] - 8003a48: ed9f 7a10 vldr s14, [pc, #64] @ 8003a8c - 8003a4c: eef4 7ac7 vcmpe.f32 s15, s14 - 8003a50: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003a54: dd0a ble.n 8003a6c - data->crash_detect_counter++; - 8003a56: 687b ldr r3, [r7, #4] - 8003a58: 69db ldr r3, [r3, #28] - 8003a5a: 1c5a adds r2, r3, #1 - 8003a5c: 687b ldr r3, [r7, #4] - 8003a5e: 61da str r2, [r3, #28] - - // Confirme la chute si seuil dépassé pendant plusieurs échantillons - if (data->crash_detect_counter > 5) { // ~50ms à 100Hz - 8003a60: 687b ldr r3, [r7, #4] - 8003a62: 69db ldr r3, [r3, #28] - 8003a64: 2b05 cmp r3, #5 - 8003a66: d90a bls.n 8003a7e - return true; - 8003a68: 2301 movs r3, #1 - 8003a6a: e009 b.n 8003a80 - } - } else { - // Décrémente progressivement le compteur - if (data->crash_detect_counter > 0) { - 8003a6c: 687b ldr r3, [r7, #4] - 8003a6e: 69db ldr r3, [r3, #28] - 8003a70: 2b00 cmp r3, #0 - 8003a72: d004 beq.n 8003a7e - data->crash_detect_counter--; - 8003a74: 687b ldr r3, [r7, #4] - 8003a76: 69db ldr r3, [r3, #28] - 8003a78: 1e5a subs r2, r3, #1 - 8003a7a: 687b ldr r3, [r7, #4] - 8003a7c: 61da str r2, [r3, #28] - } - } - - return false; - 8003a7e: 2300 movs r3, #0 -} - 8003a80: 4618 mov r0, r3 - 8003a82: 370c adds r7, #12 - 8003a84: 46bd mov sp, r7 - 8003a86: f85d 7b04 ldr.w r7, [sp], #4 - 8003a8a: 4770 bx lr - 8003a8c: 43960000 .word 0x43960000 - -08003a90 : - -void Moto_FormatDisplay(const MotoData_t *data, int line, char *buffer) { - 8003a90: b5b0 push {r4, r5, r7, lr} - 8003a92: b088 sub sp, #32 - 8003a94: af04 add r7, sp, #16 - 8003a96: 60f8 str r0, [r7, #12] - 8003a98: 60b9 str r1, [r7, #8] - 8003a9a: 607a str r2, [r7, #4] - switch (line) { - 8003a9c: 68bb ldr r3, [r7, #8] - 8003a9e: 2b03 cmp r3, #3 - 8003aa0: f200 8097 bhi.w 8003bd2 - 8003aa4: a201 add r2, pc, #4 @ (adr r2, 8003aac ) - 8003aa6: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8003aaa: bf00 nop - 8003aac: 08003abd .word 0x08003abd - 8003ab0: 08003aed .word 0x08003aed - 8003ab4: 08003b0b .word 0x08003b0b - 8003ab8: 08003b23 .word 0x08003b23 - case 0: - snprintf(buffer, 21, "R:%5.1f P:%5.1f", - data->roll_filtered, data->pitch_filtered); - 8003abc: 68fb ldr r3, [r7, #12] - 8003abe: 68db ldr r3, [r3, #12] - snprintf(buffer, 21, "R:%5.1f P:%5.1f", - 8003ac0: 4618 mov r0, r3 - 8003ac2: f7fc fd49 bl 8000558 <__aeabi_f2d> - 8003ac6: 4604 mov r4, r0 - 8003ac8: 460d mov r5, r1 - data->roll_filtered, data->pitch_filtered); - 8003aca: 68fb ldr r3, [r7, #12] - 8003acc: 691b ldr r3, [r3, #16] - snprintf(buffer, 21, "R:%5.1f P:%5.1f", - 8003ace: 4618 mov r0, r3 - 8003ad0: f7fc fd42 bl 8000558 <__aeabi_f2d> - 8003ad4: 4602 mov r2, r0 - 8003ad6: 460b mov r3, r1 - 8003ad8: e9cd 2302 strd r2, r3, [sp, #8] - 8003adc: e9cd 4500 strd r4, r5, [sp] - 8003ae0: 4a41 ldr r2, [pc, #260] @ (8003be8 ) - 8003ae2: 2115 movs r1, #21 - 8003ae4: 6878 ldr r0, [r7, #4] - 8003ae6: f004 f999 bl 8007e1c - break; - 8003aea: e078 b.n 8003bde - - case 1: - snprintf(buffer, 21, "Yaw: %6.1f deg", data->yaw_filtered); - 8003aec: 68fb ldr r3, [r7, #12] - 8003aee: 695b ldr r3, [r3, #20] - 8003af0: 4618 mov r0, r3 - 8003af2: f7fc fd31 bl 8000558 <__aeabi_f2d> - 8003af6: 4602 mov r2, r0 - 8003af8: 460b mov r3, r1 - 8003afa: e9cd 2300 strd r2, r3, [sp] - 8003afe: 4a3b ldr r2, [pc, #236] @ (8003bec ) - 8003b00: 2115 movs r1, #21 - 8003b02: 6878 ldr r0, [r7, #4] - 8003b04: f004 f98a bl 8007e1c - break; - 8003b08: e069 b.n 8003bde - - case 2: - snprintf(buffer, 21, "Etat: %s", Moto_GetStateString(data->state)); - 8003b0a: 68fb ldr r3, [r7, #12] - 8003b0c: 7e1b ldrb r3, [r3, #24] - 8003b0e: 4618 mov r0, r3 - 8003b10: f7ff fe98 bl 8003844 - 8003b14: 4603 mov r3, r0 - 8003b16: 4a36 ldr r2, [pc, #216] @ (8003bf0 ) - 8003b18: 2115 movs r1, #21 - 8003b1a: 6878 ldr r0, [r7, #4] - 8003b1c: f004 f97e bl 8007e1c - break; - 8003b20: e05d b.n 8003bde - - case 3: - if (data->is_initializing) { - 8003b22: 68fb ldr r3, [r7, #12] - 8003b24: 7e5b ldrb r3, [r3, #25] - 8003b26: 2b00 cmp r3, #0 - 8003b28: d005 beq.n 8003b36 - snprintf(buffer, 21, "---- INIT EN COURS ----"); - 8003b2a: 4a32 ldr r2, [pc, #200] @ (8003bf4 ) - 8003b2c: 2115 movs r1, #21 - 8003b2e: 6878 ldr r0, [r7, #4] - 8003b30: f004 f974 bl 8007e1c - default: - snprintf(buffer, 21, "--- INCONNU --- "); - break; - } - } - break; - 8003b34: e053 b.n 8003bde - switch (data->state) { - 8003b36: 68fb ldr r3, [r7, #12] - 8003b38: 7e1b ldrb r3, [r3, #24] - 8003b3a: 2b06 cmp r3, #6 - 8003b3c: d842 bhi.n 8003bc4 - 8003b3e: a201 add r2, pc, #4 @ (adr r2, 8003b44 ) - 8003b40: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8003b44: 08003b61 .word 0x08003b61 - 8003b48: 08003b6d .word 0x08003b6d - 8003b4c: 08003b95 .word 0x08003b95 - 8003b50: 08003ba1 .word 0x08003ba1 - 8003b54: 08003bad .word 0x08003bad - 8003b58: 08003bb9 .word 0x08003bb9 - 8003b5c: 08003b95 .word 0x08003b95 - snprintf(buffer, 21, "---- EQUILIBRE ----"); - 8003b60: 4a25 ldr r2, [pc, #148] @ (8003bf8 ) - 8003b62: 2115 movs r1, #21 - 8003b64: 6878 ldr r0, [r7, #4] - 8003b66: f004 f959 bl 8007e1c - break; - 8003b6a: e031 b.n 8003bd0 - if (data->roll > 0) { - 8003b6c: 68fb ldr r3, [r7, #12] - 8003b6e: edd3 7a00 vldr s15, [r3] - 8003b72: eef5 7ac0 vcmpe.f32 s15, #0.0 - 8003b76: eef1 fa10 vmrs APSR_nzcv, fpscr - 8003b7a: dd05 ble.n 8003b88 - snprintf(buffer, 21, "INCLIN. DROITE >>>"); - 8003b7c: 4a1f ldr r2, [pc, #124] @ (8003bfc ) - 8003b7e: 2115 movs r1, #21 - 8003b80: 6878 ldr r0, [r7, #4] - 8003b82: f004 f94b bl 8007e1c - break; - 8003b86: e023 b.n 8003bd0 - snprintf(buffer, 21, "<<< INCLIN. GAUCHE"); - 8003b88: 4a1d ldr r2, [pc, #116] @ (8003c00 ) - 8003b8a: 2115 movs r1, #21 - 8003b8c: 6878 ldr r0, [r7, #4] - 8003b8e: f004 f945 bl 8007e1c - break; - 8003b92: e01d b.n 8003bd0 - snprintf(buffer, 21, "!!! ATTENTION !!! "); - 8003b94: 4a1b ldr r2, [pc, #108] @ (8003c04 ) - 8003b96: 2115 movs r1, #21 - 8003b98: 6878 ldr r0, [r7, #4] - 8003b9a: f004 f93f bl 8007e1c - break; - 8003b9e: e017 b.n 8003bd0 - snprintf(buffer, 21, "^^^ WHEELIE ^^^ "); - 8003ba0: 4a19 ldr r2, [pc, #100] @ (8003c08 ) - 8003ba2: 2115 movs r1, #21 - 8003ba4: 6878 ldr r0, [r7, #4] - 8003ba6: f004 f939 bl 8007e1c - break; - 8003baa: e011 b.n 8003bd0 - snprintf(buffer, 21, "vvv STOPPIE vvv "); - 8003bac: 4a17 ldr r2, [pc, #92] @ (8003c0c ) - 8003bae: 2115 movs r1, #21 - 8003bb0: 6878 ldr r0, [r7, #4] - 8003bb2: f004 f933 bl 8007e1c - break; - 8003bb6: e00b b.n 8003bd0 - snprintf(buffer, 21, ">>> VIRAGE <<< "); - 8003bb8: 4a15 ldr r2, [pc, #84] @ (8003c10 ) - 8003bba: 2115 movs r1, #21 - 8003bbc: 6878 ldr r0, [r7, #4] - 8003bbe: f004 f92d bl 8007e1c - break; - 8003bc2: e005 b.n 8003bd0 - snprintf(buffer, 21, "--- INCONNU --- "); - 8003bc4: 4a13 ldr r2, [pc, #76] @ (8003c14 ) - 8003bc6: 2115 movs r1, #21 - 8003bc8: 6878 ldr r0, [r7, #4] - 8003bca: f004 f927 bl 8007e1c - break; - 8003bce: bf00 nop - break; - 8003bd0: e005 b.n 8003bde - - default: - snprintf(buffer, 21, "Ligne invalide"); - 8003bd2: 4a11 ldr r2, [pc, #68] @ (8003c18 ) - 8003bd4: 2115 movs r1, #21 - 8003bd6: 6878 ldr r0, [r7, #4] - 8003bd8: f004 f920 bl 8007e1c - break; - 8003bdc: bf00 nop - } -} - 8003bde: bf00 nop - 8003be0: 3710 adds r7, #16 - 8003be2: 46bd mov sp, r7 - 8003be4: bdb0 pop {r4, r5, r7, pc} - 8003be6: bf00 nop - 8003be8: 0800b834 .word 0x0800b834 - 8003bec: 0800b844 .word 0x0800b844 - 8003bf0: 0800b854 .word 0x0800b854 - 8003bf4: 0800b860 .word 0x0800b860 - 8003bf8: 0800b878 .word 0x0800b878 - 8003bfc: 0800b88c .word 0x0800b88c - 8003c00: 0800b8a0 .word 0x0800b8a0 - 8003c04: 0800b8b4 .word 0x0800b8b4 - 8003c08: 0800b8cc .word 0x0800b8cc - 8003c0c: 0800b8e4 .word 0x0800b8e4 - 8003c10: 0800b8fc .word 0x0800b8fc - 8003c14: 0800b914 .word 0x0800b914 - 8003c18: 0800b92c .word 0x0800b92c - -08003c1c : +080010b0 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 8003c1c: b480 push {r7} - 8003c1e: b083 sub sp, #12 - 8003c20: af00 add r7, sp, #0 + 80010b0: b480 push {r7} + 80010b2: b083 sub sp, #12 + 80010b4: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8003c22: 4b0f ldr r3, [pc, #60] @ (8003c60 ) - 8003c24: 6e1b ldr r3, [r3, #96] @ 0x60 - 8003c26: 4a0e ldr r2, [pc, #56] @ (8003c60 ) - 8003c28: f043 0301 orr.w r3, r3, #1 - 8003c2c: 6613 str r3, [r2, #96] @ 0x60 - 8003c2e: 4b0c ldr r3, [pc, #48] @ (8003c60 ) - 8003c30: 6e1b ldr r3, [r3, #96] @ 0x60 - 8003c32: f003 0301 and.w r3, r3, #1 - 8003c36: 607b str r3, [r7, #4] - 8003c38: 687b ldr r3, [r7, #4] + 80010b6: 4b0f ldr r3, [pc, #60] @ (80010f4 ) + 80010b8: 6e1b ldr r3, [r3, #96] @ 0x60 + 80010ba: 4a0e ldr r2, [pc, #56] @ (80010f4 ) + 80010bc: f043 0301 orr.w r3, r3, #1 + 80010c0: 6613 str r3, [r2, #96] @ 0x60 + 80010c2: 4b0c ldr r3, [pc, #48] @ (80010f4 ) + 80010c4: 6e1b ldr r3, [r3, #96] @ 0x60 + 80010c6: f003 0301 and.w r3, r3, #1 + 80010ca: 607b str r3, [r7, #4] + 80010cc: 687b ldr r3, [r7, #4] __HAL_RCC_PWR_CLK_ENABLE(); - 8003c3a: 4b09 ldr r3, [pc, #36] @ (8003c60 ) - 8003c3c: 6d9b ldr r3, [r3, #88] @ 0x58 - 8003c3e: 4a08 ldr r2, [pc, #32] @ (8003c60 ) - 8003c40: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 - 8003c44: 6593 str r3, [r2, #88] @ 0x58 - 8003c46: 4b06 ldr r3, [pc, #24] @ (8003c60 ) - 8003c48: 6d9b ldr r3, [r3, #88] @ 0x58 - 8003c4a: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 8003c4e: 603b str r3, [r7, #0] - 8003c50: 683b ldr r3, [r7, #0] + 80010ce: 4b09 ldr r3, [pc, #36] @ (80010f4 ) + 80010d0: 6d9b ldr r3, [r3, #88] @ 0x58 + 80010d2: 4a08 ldr r2, [pc, #32] @ (80010f4 ) + 80010d4: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 80010d8: 6593 str r3, [r2, #88] @ 0x58 + 80010da: 4b06 ldr r3, [pc, #24] @ (80010f4 ) + 80010dc: 6d9b ldr r3, [r3, #88] @ 0x58 + 80010de: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80010e2: 603b str r3, [r7, #0] + 80010e4: 683b ldr r3, [r7, #0] /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 8003c52: bf00 nop - 8003c54: 370c adds r7, #12 - 8003c56: 46bd mov sp, r7 - 8003c58: f85d 7b04 ldr.w r7, [sp], #4 - 8003c5c: 4770 bx lr - 8003c5e: bf00 nop - 8003c60: 40021000 .word 0x40021000 + 80010e6: bf00 nop + 80010e8: 370c adds r7, #12 + 80010ea: 46bd mov sp, r7 + 80010ec: f85d 7b04 ldr.w r7, [sp], #4 + 80010f0: 4770 bx lr + 80010f2: bf00 nop + 80010f4: 40021000 .word 0x40021000 -08003c64 : +080010f8 : * This function configures the hardware resources used in this example - * @param hi2c: I2C handle pointer + * @param hspi: SPI handle pointer * @retval None */ -void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) +void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) { - 8003c64: b580 push {r7, lr} - 8003c66: b0a4 sub sp, #144 @ 0x90 - 8003c68: af00 add r7, sp, #0 - 8003c6a: 6078 str r0, [r7, #4] + 80010f8: b580 push {r7, lr} + 80010fa: b08a sub sp, #40 @ 0x28 + 80010fc: af00 add r7, sp, #0 + 80010fe: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8003c6c: f107 037c add.w r3, r7, #124 @ 0x7c - 8003c70: 2200 movs r2, #0 - 8003c72: 601a str r2, [r3, #0] - 8003c74: 605a str r2, [r3, #4] - 8003c76: 609a str r2, [r3, #8] - 8003c78: 60da str r2, [r3, #12] - 8003c7a: 611a str r2, [r3, #16] - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - 8003c7c: f107 0314 add.w r3, r7, #20 - 8003c80: 2268 movs r2, #104 @ 0x68 - 8003c82: 2100 movs r1, #0 - 8003c84: 4618 mov r0, r3 - 8003c86: f004 f942 bl 8007f0e - if(hi2c->Instance==I2C1) - 8003c8a: 687b ldr r3, [r7, #4] - 8003c8c: 681b ldr r3, [r3, #0] - 8003c8e: 4a21 ldr r2, [pc, #132] @ (8003d14 ) - 8003c90: 4293 cmp r3, r2 - 8003c92: d13a bne.n 8003d0a - - /* USER CODE END I2C1_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; - 8003c94: 2340 movs r3, #64 @ 0x40 - 8003c96: 617b str r3, [r7, #20] - PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; - 8003c98: 2300 movs r3, #0 - 8003c9a: 64bb str r3, [r7, #72] @ 0x48 - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - 8003c9c: f107 0314 add.w r3, r7, #20 - 8003ca0: 4618 mov r0, r3 - 8003ca2: f002 fabb bl 800621c - 8003ca6: 4603 mov r3, r0 - 8003ca8: 2b00 cmp r3, #0 - 8003caa: d001 beq.n 8003cb0 - { - Error_Handler(); - 8003cac: f7ff fcd6 bl 800365c - } - - __HAL_RCC_GPIOB_CLK_ENABLE(); - 8003cb0: 4b19 ldr r3, [pc, #100] @ (8003d18 ) - 8003cb2: 6cdb ldr r3, [r3, #76] @ 0x4c - 8003cb4: 4a18 ldr r2, [pc, #96] @ (8003d18 ) - 8003cb6: f043 0302 orr.w r3, r3, #2 - 8003cba: 64d3 str r3, [r2, #76] @ 0x4c - 8003cbc: 4b16 ldr r3, [pc, #88] @ (8003d18 ) - 8003cbe: 6cdb ldr r3, [r3, #76] @ 0x4c - 8003cc0: f003 0302 and.w r3, r3, #2 - 8003cc4: 613b str r3, [r7, #16] - 8003cc6: 693b ldr r3, [r7, #16] - /**I2C1 GPIO Configuration - PB8 ------> I2C1_SCL - PB9 ------> I2C1_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; - 8003cc8: f44f 7340 mov.w r3, #768 @ 0x300 - 8003ccc: 67fb str r3, [r7, #124] @ 0x7c - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - 8003cce: 2312 movs r3, #18 - 8003cd0: f8c7 3080 str.w r3, [r7, #128] @ 0x80 - GPIO_InitStruct.Pull = GPIO_NOPULL; - 8003cd4: 2300 movs r3, #0 - 8003cd6: f8c7 3084 str.w r3, [r7, #132] @ 0x84 - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8003cda: 2303 movs r3, #3 - 8003cdc: f8c7 3088 str.w r3, [r7, #136] @ 0x88 - GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; - 8003ce0: 2304 movs r3, #4 - 8003ce2: f8c7 308c str.w r3, [r7, #140] @ 0x8c - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8003ce6: f107 037c add.w r3, r7, #124 @ 0x7c - 8003cea: 4619 mov r1, r3 - 8003cec: 480b ldr r0, [pc, #44] @ (8003d1c ) - 8003cee: f000 fb2b bl 8004348 + 8001100: f107 0314 add.w r3, r7, #20 + 8001104: 2200 movs r2, #0 + 8001106: 601a str r2, [r3, #0] + 8001108: 605a str r2, [r3, #4] + 800110a: 609a str r2, [r3, #8] + 800110c: 60da str r2, [r3, #12] + 800110e: 611a str r2, [r3, #16] + if(hspi->Instance==SPI1) + 8001110: 687b ldr r3, [r7, #4] + 8001112: 681b ldr r3, [r3, #0] + 8001114: 4a18 ldr r2, [pc, #96] @ (8001178 ) + 8001116: 4293 cmp r3, r2 + 8001118: d129 bne.n 800116e + { + /* USER CODE BEGIN SPI1_MspInit 0 */ + /* USER CODE END SPI1_MspInit 0 */ /* Peripheral clock enable */ - __HAL_RCC_I2C1_CLK_ENABLE(); - 8003cf2: 4b09 ldr r3, [pc, #36] @ (8003d18 ) - 8003cf4: 6d9b ldr r3, [r3, #88] @ 0x58 - 8003cf6: 4a08 ldr r2, [pc, #32] @ (8003d18 ) - 8003cf8: f443 1300 orr.w r3, r3, #2097152 @ 0x200000 - 8003cfc: 6593 str r3, [r2, #88] @ 0x58 - 8003cfe: 4b06 ldr r3, [pc, #24] @ (8003d18 ) - 8003d00: 6d9b ldr r3, [r3, #88] @ 0x58 - 8003d02: f403 1300 and.w r3, r3, #2097152 @ 0x200000 - 8003d06: 60fb str r3, [r7, #12] - 8003d08: 68fb ldr r3, [r7, #12] - - /* USER CODE END I2C1_MspInit 1 */ - - } - -} - 8003d0a: bf00 nop - 8003d0c: 3790 adds r7, #144 @ 0x90 - 8003d0e: 46bd mov sp, r7 - 8003d10: bd80 pop {r7, pc} - 8003d12: bf00 nop - 8003d14: 40005400 .word 0x40005400 - 8003d18: 40021000 .word 0x40021000 - 8003d1c: 48000400 .word 0x48000400 - -08003d20 : - * This function configures the hardware resources used in this example - * @param huart: UART handle pointer - * @retval None - */ -void HAL_UART_MspInit(UART_HandleTypeDef* huart) -{ - 8003d20: b580 push {r7, lr} - 8003d22: b0a4 sub sp, #144 @ 0x90 - 8003d24: af00 add r7, sp, #0 - 8003d26: 6078 str r0, [r7, #4] - GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8003d28: f107 037c add.w r3, r7, #124 @ 0x7c - 8003d2c: 2200 movs r2, #0 - 8003d2e: 601a str r2, [r3, #0] - 8003d30: 605a str r2, [r3, #4] - 8003d32: 609a str r2, [r3, #8] - 8003d34: 60da str r2, [r3, #12] - 8003d36: 611a str r2, [r3, #16] - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - 8003d38: f107 0314 add.w r3, r7, #20 - 8003d3c: 2268 movs r2, #104 @ 0x68 - 8003d3e: 2100 movs r1, #0 - 8003d40: 4618 mov r0, r3 - 8003d42: f004 f8e4 bl 8007f0e - if(huart->Instance==USART2) - 8003d46: 687b ldr r3, [r7, #4] - 8003d48: 681b ldr r3, [r3, #0] - 8003d4a: 4a21 ldr r2, [pc, #132] @ (8003dd0 ) - 8003d4c: 4293 cmp r3, r2 - 8003d4e: d13a bne.n 8003dc6 - - /* USER CODE END USART2_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2; - 8003d50: 2302 movs r3, #2 - 8003d52: 617b str r3, [r7, #20] - PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; - 8003d54: 2300 movs r3, #0 - 8003d56: 63bb str r3, [r7, #56] @ 0x38 - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - 8003d58: f107 0314 add.w r3, r7, #20 - 8003d5c: 4618 mov r0, r3 - 8003d5e: f002 fa5d bl 800621c - 8003d62: 4603 mov r3, r0 - 8003d64: 2b00 cmp r3, #0 - 8003d66: d001 beq.n 8003d6c - { - Error_Handler(); - 8003d68: f7ff fc78 bl 800365c - } - - /* Peripheral clock enable */ - __HAL_RCC_USART2_CLK_ENABLE(); - 8003d6c: 4b19 ldr r3, [pc, #100] @ (8003dd4 ) - 8003d6e: 6d9b ldr r3, [r3, #88] @ 0x58 - 8003d70: 4a18 ldr r2, [pc, #96] @ (8003dd4 ) - 8003d72: f443 3300 orr.w r3, r3, #131072 @ 0x20000 - 8003d76: 6593 str r3, [r2, #88] @ 0x58 - 8003d78: 4b16 ldr r3, [pc, #88] @ (8003dd4 ) - 8003d7a: 6d9b ldr r3, [r3, #88] @ 0x58 - 8003d7c: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8003d80: 613b str r3, [r7, #16] - 8003d82: 693b ldr r3, [r7, #16] + __HAL_RCC_SPI1_CLK_ENABLE(); + 800111a: 4b18 ldr r3, [pc, #96] @ (800117c ) + 800111c: 6e1b ldr r3, [r3, #96] @ 0x60 + 800111e: 4a17 ldr r2, [pc, #92] @ (800117c ) + 8001120: f443 5380 orr.w r3, r3, #4096 @ 0x1000 + 8001124: 6613 str r3, [r2, #96] @ 0x60 + 8001126: 4b15 ldr r3, [pc, #84] @ (800117c ) + 8001128: 6e1b ldr r3, [r3, #96] @ 0x60 + 800112a: f403 5380 and.w r3, r3, #4096 @ 0x1000 + 800112e: 613b str r3, [r7, #16] + 8001130: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOA_CLK_ENABLE(); - 8003d84: 4b13 ldr r3, [pc, #76] @ (8003dd4 ) - 8003d86: 6cdb ldr r3, [r3, #76] @ 0x4c - 8003d88: 4a12 ldr r2, [pc, #72] @ (8003dd4 ) - 8003d8a: f043 0301 orr.w r3, r3, #1 - 8003d8e: 64d3 str r3, [r2, #76] @ 0x4c - 8003d90: 4b10 ldr r3, [pc, #64] @ (8003dd4 ) - 8003d92: 6cdb ldr r3, [r3, #76] @ 0x4c - 8003d94: f003 0301 and.w r3, r3, #1 - 8003d98: 60fb str r3, [r7, #12] - 8003d9a: 68fb ldr r3, [r7, #12] - /**USART2 GPIO Configuration - PA2 ------> USART2_TX - PA3 ------> USART2_RX + 8001132: 4b12 ldr r3, [pc, #72] @ (800117c ) + 8001134: 6cdb ldr r3, [r3, #76] @ 0x4c + 8001136: 4a11 ldr r2, [pc, #68] @ (800117c ) + 8001138: f043 0301 orr.w r3, r3, #1 + 800113c: 64d3 str r3, [r2, #76] @ 0x4c + 800113e: 4b0f ldr r3, [pc, #60] @ (800117c ) + 8001140: 6cdb ldr r3, [r3, #76] @ 0x4c + 8001142: f003 0301 and.w r3, r3, #1 + 8001146: 60fb str r3, [r7, #12] + 8001148: 68fb ldr r3, [r7, #12] + /**SPI1 GPIO Configuration + PA1 ------> SPI1_SCK + PA11 ------> SPI1_MISO + PA12 ------> SPI1_MOSI */ - GPIO_InitStruct.Pin = USART_TX_Pin|USART_RX_Pin; - 8003d9c: 230c movs r3, #12 - 8003d9e: 67fb str r3, [r7, #124] @ 0x7c + GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_11|GPIO_PIN_12; + 800114a: f641 0302 movw r3, #6146 @ 0x1802 + 800114e: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8003da0: 2302 movs r3, #2 - 8003da2: f8c7 3080 str.w r3, [r7, #128] @ 0x80 + 8001150: 2302 movs r3, #2 + 8001152: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8003da6: 2300 movs r3, #0 - 8003da8: f8c7 3084 str.w r3, [r7, #132] @ 0x84 + 8001154: 2300 movs r3, #0 + 8001156: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8003dac: 2303 movs r3, #3 - 8003dae: f8c7 3088 str.w r3, [r7, #136] @ 0x88 - GPIO_InitStruct.Alternate = GPIO_AF7_USART2; - 8003db2: 2307 movs r3, #7 - 8003db4: f8c7 308c str.w r3, [r7, #140] @ 0x8c + 8001158: 2303 movs r3, #3 + 800115a: 623b str r3, [r7, #32] + GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; + 800115c: 2305 movs r3, #5 + 800115e: 627b str r3, [r7, #36] @ 0x24 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8003db8: f107 037c add.w r3, r7, #124 @ 0x7c - 8003dbc: 4619 mov r1, r3 - 8003dbe: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 - 8003dc2: f000 fac1 bl 8004348 + 8001160: f107 0314 add.w r3, r7, #20 + 8001164: 4619 mov r1, r3 + 8001166: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 + 800116a: f000 fac1 bl 80016f0 - /* USER CODE END USART2_MspInit 1 */ + /* USER CODE END SPI1_MspInit 1 */ } } - 8003dc6: bf00 nop - 8003dc8: 3790 adds r7, #144 @ 0x90 - 8003dca: 46bd mov sp, r7 - 8003dcc: bd80 pop {r7, pc} - 8003dce: bf00 nop - 8003dd0: 40004400 .word 0x40004400 - 8003dd4: 40021000 .word 0x40021000 + 800116e: bf00 nop + 8001170: 3728 adds r7, #40 @ 0x28 + 8001172: 46bd mov sp, r7 + 8001174: bd80 pop {r7, pc} + 8001176: bf00 nop + 8001178: 40013000 .word 0x40013000 + 800117c: 40021000 .word 0x40021000 -08003dd8 : +08001180 : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { - 8003dd8: b480 push {r7} - 8003dda: af00 add r7, sp, #0 + 8001180: b480 push {r7} + 8001182: af00 add r7, sp, #0 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ while (1) - 8003ddc: bf00 nop - 8003dde: e7fd b.n 8003ddc + 8001184: bf00 nop + 8001186: e7fd b.n 8001184 -08003de0 : +08001188 : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 8003de0: b480 push {r7} - 8003de2: af00 add r7, sp, #0 + 8001188: b480 push {r7} + 800118a: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) - 8003de4: bf00 nop - 8003de6: e7fd b.n 8003de4 + 800118c: bf00 nop + 800118e: e7fd b.n 800118c -08003de8 : +08001190 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { - 8003de8: b480 push {r7} - 8003dea: af00 add r7, sp, #0 + 8001190: b480 push {r7} + 8001192: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) - 8003dec: bf00 nop - 8003dee: e7fd b.n 8003dec + 8001194: bf00 nop + 8001196: e7fd b.n 8001194 -08003df0 : +08001198 : /** * @brief This function handles Prefetch fault, memory access fault. */ void BusFault_Handler(void) { - 8003df0: b480 push {r7} - 8003df2: af00 add r7, sp, #0 + 8001198: b480 push {r7} + 800119a: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) - 8003df4: bf00 nop - 8003df6: e7fd b.n 8003df4 + 800119c: bf00 nop + 800119e: e7fd b.n 800119c -08003df8 : +080011a0 : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { - 8003df8: b480 push {r7} - 8003dfa: af00 add r7, sp, #0 + 80011a0: b480 push {r7} + 80011a2: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) - 8003dfc: bf00 nop - 8003dfe: e7fd b.n 8003dfc + 80011a4: bf00 nop + 80011a6: e7fd b.n 80011a4 -08003e00 : +080011a8 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { - 8003e00: b480 push {r7} - 8003e02: af00 add r7, sp, #0 + 80011a8: b480 push {r7} + 80011aa: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } - 8003e04: bf00 nop - 8003e06: 46bd mov sp, r7 - 8003e08: f85d 7b04 ldr.w r7, [sp], #4 - 8003e0c: 4770 bx lr + 80011ac: bf00 nop + 80011ae: 46bd mov sp, r7 + 80011b0: f85d 7b04 ldr.w r7, [sp], #4 + 80011b4: 4770 bx lr -08003e0e : +080011b6 : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { - 8003e0e: b480 push {r7} - 8003e10: af00 add r7, sp, #0 + 80011b6: b480 push {r7} + 80011b8: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } - 8003e12: bf00 nop - 8003e14: 46bd mov sp, r7 - 8003e16: f85d 7b04 ldr.w r7, [sp], #4 - 8003e1a: 4770 bx lr + 80011ba: bf00 nop + 80011bc: 46bd mov sp, r7 + 80011be: f85d 7b04 ldr.w r7, [sp], #4 + 80011c2: 4770 bx lr -08003e1c : +080011c4 : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { - 8003e1c: b480 push {r7} - 8003e1e: af00 add r7, sp, #0 + 80011c4: b480 push {r7} + 80011c6: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 8003e20: bf00 nop - 8003e22: 46bd mov sp, r7 - 8003e24: f85d 7b04 ldr.w r7, [sp], #4 - 8003e28: 4770 bx lr + 80011c8: bf00 nop + 80011ca: 46bd mov sp, r7 + 80011cc: f85d 7b04 ldr.w r7, [sp], #4 + 80011d0: 4770 bx lr -08003e2a : +080011d2 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 8003e2a: b580 push {r7, lr} - 8003e2c: af00 add r7, sp, #0 + 80011d2: b580 push {r7, lr} + 80011d4: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 8003e2e: f000 f961 bl 80040f4 + 80011d6: f000 f961 bl 800149c /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 8003e32: bf00 nop - 8003e34: bd80 pop {r7, pc} + 80011da: bf00 nop + 80011dc: bd80 pop {r7, pc} -08003e36 <_getpid>: +080011de <_getpid>: void initialise_monitor_handles() { } int _getpid(void) { - 8003e36: b480 push {r7} - 8003e38: af00 add r7, sp, #0 + 80011de: b480 push {r7} + 80011e0: af00 add r7, sp, #0 return 1; - 8003e3a: 2301 movs r3, #1 + 80011e2: 2301 movs r3, #1 } - 8003e3c: 4618 mov r0, r3 - 8003e3e: 46bd mov sp, r7 - 8003e40: f85d 7b04 ldr.w r7, [sp], #4 - 8003e44: 4770 bx lr + 80011e4: 4618 mov r0, r3 + 80011e6: 46bd mov sp, r7 + 80011e8: f85d 7b04 ldr.w r7, [sp], #4 + 80011ec: 4770 bx lr -08003e46 <_kill>: +080011ee <_kill>: int _kill(int pid, int sig) { - 8003e46: b580 push {r7, lr} - 8003e48: b082 sub sp, #8 - 8003e4a: af00 add r7, sp, #0 - 8003e4c: 6078 str r0, [r7, #4] - 8003e4e: 6039 str r1, [r7, #0] + 80011ee: b580 push {r7, lr} + 80011f0: b082 sub sp, #8 + 80011f2: af00 add r7, sp, #0 + 80011f4: 6078 str r0, [r7, #4] + 80011f6: 6039 str r1, [r7, #0] (void)pid; (void)sig; errno = EINVAL; - 8003e50: f004 f8b0 bl 8007fb4 <__errno> - 8003e54: 4603 mov r3, r0 - 8003e56: 2216 movs r2, #22 - 8003e58: 601a str r2, [r3, #0] + 80011f8: f002 fb46 bl 8003888 <__errno> + 80011fc: 4603 mov r3, r0 + 80011fe: 2216 movs r2, #22 + 8001200: 601a str r2, [r3, #0] return -1; - 8003e5a: f04f 33ff mov.w r3, #4294967295 + 8001202: f04f 33ff mov.w r3, #4294967295 } - 8003e5e: 4618 mov r0, r3 - 8003e60: 3708 adds r7, #8 - 8003e62: 46bd mov sp, r7 - 8003e64: bd80 pop {r7, pc} + 8001206: 4618 mov r0, r3 + 8001208: 3708 adds r7, #8 + 800120a: 46bd mov sp, r7 + 800120c: bd80 pop {r7, pc} -08003e66 <_exit>: +0800120e <_exit>: void _exit (int status) { - 8003e66: b580 push {r7, lr} - 8003e68: b082 sub sp, #8 - 8003e6a: af00 add r7, sp, #0 - 8003e6c: 6078 str r0, [r7, #4] + 800120e: b580 push {r7, lr} + 8001210: b082 sub sp, #8 + 8001212: af00 add r7, sp, #0 + 8001214: 6078 str r0, [r7, #4] _kill(status, -1); - 8003e6e: f04f 31ff mov.w r1, #4294967295 - 8003e72: 6878 ldr r0, [r7, #4] - 8003e74: f7ff ffe7 bl 8003e46 <_kill> + 8001216: f04f 31ff mov.w r1, #4294967295 + 800121a: 6878 ldr r0, [r7, #4] + 800121c: f7ff ffe7 bl 80011ee <_kill> while (1) {} /* Make sure we hang here */ - 8003e78: bf00 nop - 8003e7a: e7fd b.n 8003e78 <_exit+0x12> + 8001220: bf00 nop + 8001222: e7fd b.n 8001220 <_exit+0x12> -08003e7c <_read>: +08001224 <_read>: } __attribute__((weak)) int _read(int file, char *ptr, int len) { - 8003e7c: b580 push {r7, lr} - 8003e7e: b086 sub sp, #24 - 8003e80: af00 add r7, sp, #0 - 8003e82: 60f8 str r0, [r7, #12] - 8003e84: 60b9 str r1, [r7, #8] - 8003e86: 607a str r2, [r7, #4] + 8001224: b580 push {r7, lr} + 8001226: b086 sub sp, #24 + 8001228: af00 add r7, sp, #0 + 800122a: 60f8 str r0, [r7, #12] + 800122c: 60b9 str r1, [r7, #8] + 800122e: 607a str r2, [r7, #4] (void)file; int DataIdx; for (DataIdx = 0; DataIdx < len; DataIdx++) - 8003e88: 2300 movs r3, #0 - 8003e8a: 617b str r3, [r7, #20] - 8003e8c: e00a b.n 8003ea4 <_read+0x28> + 8001230: 2300 movs r3, #0 + 8001232: 617b str r3, [r7, #20] + 8001234: e00a b.n 800124c <_read+0x28> { *ptr++ = __io_getchar(); - 8003e8e: f3af 8000 nop.w - 8003e92: 4601 mov r1, r0 - 8003e94: 68bb ldr r3, [r7, #8] - 8003e96: 1c5a adds r2, r3, #1 - 8003e98: 60ba str r2, [r7, #8] - 8003e9a: b2ca uxtb r2, r1 - 8003e9c: 701a strb r2, [r3, #0] + 8001236: f3af 8000 nop.w + 800123a: 4601 mov r1, r0 + 800123c: 68bb ldr r3, [r7, #8] + 800123e: 1c5a adds r2, r3, #1 + 8001240: 60ba str r2, [r7, #8] + 8001242: b2ca uxtb r2, r1 + 8001244: 701a strb r2, [r3, #0] for (DataIdx = 0; DataIdx < len; DataIdx++) - 8003e9e: 697b ldr r3, [r7, #20] - 8003ea0: 3301 adds r3, #1 - 8003ea2: 617b str r3, [r7, #20] - 8003ea4: 697a ldr r2, [r7, #20] - 8003ea6: 687b ldr r3, [r7, #4] - 8003ea8: 429a cmp r2, r3 - 8003eaa: dbf0 blt.n 8003e8e <_read+0x12> + 8001246: 697b ldr r3, [r7, #20] + 8001248: 3301 adds r3, #1 + 800124a: 617b str r3, [r7, #20] + 800124c: 697a ldr r2, [r7, #20] + 800124e: 687b ldr r3, [r7, #4] + 8001250: 429a cmp r2, r3 + 8001252: dbf0 blt.n 8001236 <_read+0x12> } return len; - 8003eac: 687b ldr r3, [r7, #4] + 8001254: 687b ldr r3, [r7, #4] } - 8003eae: 4618 mov r0, r3 - 8003eb0: 3718 adds r7, #24 - 8003eb2: 46bd mov sp, r7 - 8003eb4: bd80 pop {r7, pc} + 8001256: 4618 mov r0, r3 + 8001258: 3718 adds r7, #24 + 800125a: 46bd mov sp, r7 + 800125c: bd80 pop {r7, pc} -08003eb6 <_write>: +0800125e <_write>: __attribute__((weak)) int _write(int file, char *ptr, int len) { - 8003eb6: b580 push {r7, lr} - 8003eb8: b086 sub sp, #24 - 8003eba: af00 add r7, sp, #0 - 8003ebc: 60f8 str r0, [r7, #12] - 8003ebe: 60b9 str r1, [r7, #8] - 8003ec0: 607a str r2, [r7, #4] + 800125e: b580 push {r7, lr} + 8001260: b086 sub sp, #24 + 8001262: af00 add r7, sp, #0 + 8001264: 60f8 str r0, [r7, #12] + 8001266: 60b9 str r1, [r7, #8] + 8001268: 607a str r2, [r7, #4] (void)file; int DataIdx; for (DataIdx = 0; DataIdx < len; DataIdx++) - 8003ec2: 2300 movs r3, #0 - 8003ec4: 617b str r3, [r7, #20] - 8003ec6: e009 b.n 8003edc <_write+0x26> + 800126a: 2300 movs r3, #0 + 800126c: 617b str r3, [r7, #20] + 800126e: e009 b.n 8001284 <_write+0x26> { __io_putchar(*ptr++); - 8003ec8: 68bb ldr r3, [r7, #8] - 8003eca: 1c5a adds r2, r3, #1 - 8003ecc: 60ba str r2, [r7, #8] - 8003ece: 781b ldrb r3, [r3, #0] - 8003ed0: 4618 mov r0, r3 - 8003ed2: f7ff f801 bl 8002ed8 <__io_putchar> + 8001270: 68bb ldr r3, [r7, #8] + 8001272: 1c5a adds r2, r3, #1 + 8001274: 60ba str r2, [r7, #8] + 8001276: 781b ldrb r3, [r3, #0] + 8001278: 4618 mov r0, r3 + 800127a: f3af 8000 nop.w for (DataIdx = 0; DataIdx < len; DataIdx++) - 8003ed6: 697b ldr r3, [r7, #20] - 8003ed8: 3301 adds r3, #1 - 8003eda: 617b str r3, [r7, #20] - 8003edc: 697a ldr r2, [r7, #20] - 8003ede: 687b ldr r3, [r7, #4] - 8003ee0: 429a cmp r2, r3 - 8003ee2: dbf1 blt.n 8003ec8 <_write+0x12> + 800127e: 697b ldr r3, [r7, #20] + 8001280: 3301 adds r3, #1 + 8001282: 617b str r3, [r7, #20] + 8001284: 697a ldr r2, [r7, #20] + 8001286: 687b ldr r3, [r7, #4] + 8001288: 429a cmp r2, r3 + 800128a: dbf1 blt.n 8001270 <_write+0x12> } return len; - 8003ee4: 687b ldr r3, [r7, #4] + 800128c: 687b ldr r3, [r7, #4] } - 8003ee6: 4618 mov r0, r3 - 8003ee8: 3718 adds r7, #24 - 8003eea: 46bd mov sp, r7 - 8003eec: bd80 pop {r7, pc} + 800128e: 4618 mov r0, r3 + 8001290: 3718 adds r7, #24 + 8001292: 46bd mov sp, r7 + 8001294: bd80 pop {r7, pc} -08003eee <_close>: +08001296 <_close>: int _close(int file) { - 8003eee: b480 push {r7} - 8003ef0: b083 sub sp, #12 - 8003ef2: af00 add r7, sp, #0 - 8003ef4: 6078 str r0, [r7, #4] + 8001296: b480 push {r7} + 8001298: b083 sub sp, #12 + 800129a: af00 add r7, sp, #0 + 800129c: 6078 str r0, [r7, #4] (void)file; return -1; - 8003ef6: f04f 33ff mov.w r3, #4294967295 + 800129e: f04f 33ff mov.w r3, #4294967295 } - 8003efa: 4618 mov r0, r3 - 8003efc: 370c adds r7, #12 - 8003efe: 46bd mov sp, r7 - 8003f00: f85d 7b04 ldr.w r7, [sp], #4 - 8003f04: 4770 bx lr + 80012a2: 4618 mov r0, r3 + 80012a4: 370c adds r7, #12 + 80012a6: 46bd mov sp, r7 + 80012a8: f85d 7b04 ldr.w r7, [sp], #4 + 80012ac: 4770 bx lr -08003f06 <_fstat>: +080012ae <_fstat>: int _fstat(int file, struct stat *st) { - 8003f06: b480 push {r7} - 8003f08: b083 sub sp, #12 - 8003f0a: af00 add r7, sp, #0 - 8003f0c: 6078 str r0, [r7, #4] - 8003f0e: 6039 str r1, [r7, #0] + 80012ae: b480 push {r7} + 80012b0: b083 sub sp, #12 + 80012b2: af00 add r7, sp, #0 + 80012b4: 6078 str r0, [r7, #4] + 80012b6: 6039 str r1, [r7, #0] (void)file; st->st_mode = S_IFCHR; - 8003f10: 683b ldr r3, [r7, #0] - 8003f12: f44f 5200 mov.w r2, #8192 @ 0x2000 - 8003f16: 605a str r2, [r3, #4] + 80012b8: 683b ldr r3, [r7, #0] + 80012ba: f44f 5200 mov.w r2, #8192 @ 0x2000 + 80012be: 605a str r2, [r3, #4] return 0; - 8003f18: 2300 movs r3, #0 + 80012c0: 2300 movs r3, #0 } - 8003f1a: 4618 mov r0, r3 - 8003f1c: 370c adds r7, #12 - 8003f1e: 46bd mov sp, r7 - 8003f20: f85d 7b04 ldr.w r7, [sp], #4 - 8003f24: 4770 bx lr + 80012c2: 4618 mov r0, r3 + 80012c4: 370c adds r7, #12 + 80012c6: 46bd mov sp, r7 + 80012c8: f85d 7b04 ldr.w r7, [sp], #4 + 80012cc: 4770 bx lr -08003f26 <_isatty>: +080012ce <_isatty>: int _isatty(int file) { - 8003f26: b480 push {r7} - 8003f28: b083 sub sp, #12 - 8003f2a: af00 add r7, sp, #0 - 8003f2c: 6078 str r0, [r7, #4] + 80012ce: b480 push {r7} + 80012d0: b083 sub sp, #12 + 80012d2: af00 add r7, sp, #0 + 80012d4: 6078 str r0, [r7, #4] (void)file; return 1; - 8003f2e: 2301 movs r3, #1 + 80012d6: 2301 movs r3, #1 } - 8003f30: 4618 mov r0, r3 - 8003f32: 370c adds r7, #12 - 8003f34: 46bd mov sp, r7 - 8003f36: f85d 7b04 ldr.w r7, [sp], #4 - 8003f3a: 4770 bx lr + 80012d8: 4618 mov r0, r3 + 80012da: 370c adds r7, #12 + 80012dc: 46bd mov sp, r7 + 80012de: f85d 7b04 ldr.w r7, [sp], #4 + 80012e2: 4770 bx lr -08003f3c <_lseek>: +080012e4 <_lseek>: int _lseek(int file, int ptr, int dir) { - 8003f3c: b480 push {r7} - 8003f3e: b085 sub sp, #20 - 8003f40: af00 add r7, sp, #0 - 8003f42: 60f8 str r0, [r7, #12] - 8003f44: 60b9 str r1, [r7, #8] - 8003f46: 607a str r2, [r7, #4] + 80012e4: b480 push {r7} + 80012e6: b085 sub sp, #20 + 80012e8: af00 add r7, sp, #0 + 80012ea: 60f8 str r0, [r7, #12] + 80012ec: 60b9 str r1, [r7, #8] + 80012ee: 607a str r2, [r7, #4] (void)file; (void)ptr; (void)dir; return 0; - 8003f48: 2300 movs r3, #0 + 80012f0: 2300 movs r3, #0 } - 8003f4a: 4618 mov r0, r3 - 8003f4c: 3714 adds r7, #20 - 8003f4e: 46bd mov sp, r7 - 8003f50: f85d 7b04 ldr.w r7, [sp], #4 - 8003f54: 4770 bx lr + 80012f2: 4618 mov r0, r3 + 80012f4: 3714 adds r7, #20 + 80012f6: 46bd mov sp, r7 + 80012f8: f85d 7b04 ldr.w r7, [sp], #4 + 80012fc: 4770 bx lr ... -08003f58 <_sbrk>: +08001300 <_sbrk>: * * @param incr Memory size * @return Pointer to allocated memory */ void *_sbrk(ptrdiff_t incr) { - 8003f58: b580 push {r7, lr} - 8003f5a: b086 sub sp, #24 - 8003f5c: af00 add r7, sp, #0 - 8003f5e: 6078 str r0, [r7, #4] + 8001300: b580 push {r7, lr} + 8001302: b086 sub sp, #24 + 8001304: af00 add r7, sp, #0 + 8001306: 6078 str r0, [r7, #4] extern uint8_t _end; /* Symbol defined in the linker script */ extern uint8_t _estack; /* Symbol defined in the linker script */ extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; - 8003f60: 4a14 ldr r2, [pc, #80] @ (8003fb4 <_sbrk+0x5c>) - 8003f62: 4b15 ldr r3, [pc, #84] @ (8003fb8 <_sbrk+0x60>) - 8003f64: 1ad3 subs r3, r2, r3 - 8003f66: 617b str r3, [r7, #20] + 8001308: 4a14 ldr r2, [pc, #80] @ (800135c <_sbrk+0x5c>) + 800130a: 4b15 ldr r3, [pc, #84] @ (8001360 <_sbrk+0x60>) + 800130c: 1ad3 subs r3, r2, r3 + 800130e: 617b str r3, [r7, #20] const uint8_t *max_heap = (uint8_t *)stack_limit; - 8003f68: 697b ldr r3, [r7, #20] - 8003f6a: 613b str r3, [r7, #16] + 8001310: 697b ldr r3, [r7, #20] + 8001312: 613b str r3, [r7, #16] uint8_t *prev_heap_end; /* Initialize heap end at first call */ if (NULL == __sbrk_heap_end) - 8003f6c: 4b13 ldr r3, [pc, #76] @ (8003fbc <_sbrk+0x64>) - 8003f6e: 681b ldr r3, [r3, #0] - 8003f70: 2b00 cmp r3, #0 - 8003f72: d102 bne.n 8003f7a <_sbrk+0x22> + 8001314: 4b13 ldr r3, [pc, #76] @ (8001364 <_sbrk+0x64>) + 8001316: 681b ldr r3, [r3, #0] + 8001318: 2b00 cmp r3, #0 + 800131a: d102 bne.n 8001322 <_sbrk+0x22> { __sbrk_heap_end = &_end; - 8003f74: 4b11 ldr r3, [pc, #68] @ (8003fbc <_sbrk+0x64>) - 8003f76: 4a12 ldr r2, [pc, #72] @ (8003fc0 <_sbrk+0x68>) - 8003f78: 601a str r2, [r3, #0] + 800131c: 4b11 ldr r3, [pc, #68] @ (8001364 <_sbrk+0x64>) + 800131e: 4a12 ldr r2, [pc, #72] @ (8001368 <_sbrk+0x68>) + 8001320: 601a str r2, [r3, #0] } /* Protect heap from growing into the reserved MSP stack */ if (__sbrk_heap_end + incr > max_heap) - 8003f7a: 4b10 ldr r3, [pc, #64] @ (8003fbc <_sbrk+0x64>) - 8003f7c: 681a ldr r2, [r3, #0] - 8003f7e: 687b ldr r3, [r7, #4] - 8003f80: 4413 add r3, r2 - 8003f82: 693a ldr r2, [r7, #16] - 8003f84: 429a cmp r2, r3 - 8003f86: d207 bcs.n 8003f98 <_sbrk+0x40> + 8001322: 4b10 ldr r3, [pc, #64] @ (8001364 <_sbrk+0x64>) + 8001324: 681a ldr r2, [r3, #0] + 8001326: 687b ldr r3, [r7, #4] + 8001328: 4413 add r3, r2 + 800132a: 693a ldr r2, [r7, #16] + 800132c: 429a cmp r2, r3 + 800132e: d207 bcs.n 8001340 <_sbrk+0x40> { errno = ENOMEM; - 8003f88: f004 f814 bl 8007fb4 <__errno> - 8003f8c: 4603 mov r3, r0 - 8003f8e: 220c movs r2, #12 - 8003f90: 601a str r2, [r3, #0] + 8001330: f002 faaa bl 8003888 <__errno> + 8001334: 4603 mov r3, r0 + 8001336: 220c movs r2, #12 + 8001338: 601a str r2, [r3, #0] return (void *)-1; - 8003f92: f04f 33ff mov.w r3, #4294967295 - 8003f96: e009 b.n 8003fac <_sbrk+0x54> + 800133a: f04f 33ff mov.w r3, #4294967295 + 800133e: e009 b.n 8001354 <_sbrk+0x54> } prev_heap_end = __sbrk_heap_end; - 8003f98: 4b08 ldr r3, [pc, #32] @ (8003fbc <_sbrk+0x64>) - 8003f9a: 681b ldr r3, [r3, #0] - 8003f9c: 60fb str r3, [r7, #12] + 8001340: 4b08 ldr r3, [pc, #32] @ (8001364 <_sbrk+0x64>) + 8001342: 681b ldr r3, [r3, #0] + 8001344: 60fb str r3, [r7, #12] __sbrk_heap_end += incr; - 8003f9e: 4b07 ldr r3, [pc, #28] @ (8003fbc <_sbrk+0x64>) - 8003fa0: 681a ldr r2, [r3, #0] - 8003fa2: 687b ldr r3, [r7, #4] - 8003fa4: 4413 add r3, r2 - 8003fa6: 4a05 ldr r2, [pc, #20] @ (8003fbc <_sbrk+0x64>) - 8003fa8: 6013 str r3, [r2, #0] + 8001346: 4b07 ldr r3, [pc, #28] @ (8001364 <_sbrk+0x64>) + 8001348: 681a ldr r2, [r3, #0] + 800134a: 687b ldr r3, [r7, #4] + 800134c: 4413 add r3, r2 + 800134e: 4a05 ldr r2, [pc, #20] @ (8001364 <_sbrk+0x64>) + 8001350: 6013 str r3, [r2, #0] return (void *)prev_heap_end; - 8003faa: 68fb ldr r3, [r7, #12] + 8001352: 68fb ldr r3, [r7, #12] } - 8003fac: 4618 mov r0, r3 - 8003fae: 3718 adds r7, #24 - 8003fb0: 46bd mov sp, r7 - 8003fb2: bd80 pop {r7, pc} - 8003fb4: 20020000 .word 0x20020000 - 8003fb8: 00000800 .word 0x00000800 - 8003fbc: 2000039c .word 0x2000039c - 8003fc0: 200004f0 .word 0x200004f0 + 8001354: 4618 mov r0, r3 + 8001356: 3718 adds r7, #24 + 8001358: 46bd mov sp, r7 + 800135a: bd80 pop {r7, pc} + 800135c: 20020000 .word 0x20020000 + 8001360: 00000800 .word 0x00000800 + 8001364: 20000658 .word 0x20000658 + 8001368: 200007b0 .word 0x200007b0 -08003fc4 : +0800136c : * @brief Setup the microcontroller system. * @retval None */ void SystemInit(void) { - 8003fc4: b480 push {r7} - 8003fc6: af00 add r7, sp, #0 + 800136c: b480 push {r7} + 800136e: af00 add r7, sp, #0 SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; #endif /* FPU settings ------------------------------------------------------------*/ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 20U)|(3UL << 22U)); /* set CP10 and CP11 Full Access */ - 8003fc8: 4b06 ldr r3, [pc, #24] @ (8003fe4 ) - 8003fca: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8003fce: 4a05 ldr r2, [pc, #20] @ (8003fe4 ) - 8003fd0: f443 0370 orr.w r3, r3, #15728640 @ 0xf00000 - 8003fd4: f8c2 3088 str.w r3, [r2, #136] @ 0x88 + 8001370: 4b06 ldr r3, [pc, #24] @ (800138c ) + 8001372: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8001376: 4a05 ldr r2, [pc, #20] @ (800138c ) + 8001378: f443 0370 orr.w r3, r3, #15728640 @ 0xf00000 + 800137c: f8c2 3088 str.w r3, [r2, #136] @ 0x88 #endif } - 8003fd8: bf00 nop - 8003fda: 46bd mov sp, r7 - 8003fdc: f85d 7b04 ldr.w r7, [sp], #4 - 8003fe0: 4770 bx lr - 8003fe2: bf00 nop - 8003fe4: e000ed00 .word 0xe000ed00 + 8001380: bf00 nop + 8001382: 46bd mov sp, r7 + 8001384: f85d 7b04 ldr.w r7, [sp], #4 + 8001388: 4770 bx lr + 800138a: bf00 nop + 800138c: e000ed00 .word 0xe000ed00 -08003fe8 : +08001390 : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr sp, =_estack /* Set stack pointer */ - 8003fe8: f8df d034 ldr.w sp, [pc, #52] @ 8004020 + 8001390: f8df d034 ldr.w sp, [pc, #52] @ 80013c8 /* Call the clock system initialization function.*/ bl SystemInit - 8003fec: f7ff ffea bl 8003fc4 + 8001394: f7ff ffea bl 800136c /* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata - 8003ff0: 480c ldr r0, [pc, #48] @ (8004024 ) + 8001398: 480c ldr r0, [pc, #48] @ (80013cc ) ldr r1, =_edata - 8003ff2: 490d ldr r1, [pc, #52] @ (8004028 ) + 800139a: 490d ldr r1, [pc, #52] @ (80013d0 ) ldr r2, =_sidata - 8003ff4: 4a0d ldr r2, [pc, #52] @ (800402c ) + 800139c: 4a0d ldr r2, [pc, #52] @ (80013d4 ) movs r3, #0 - 8003ff6: 2300 movs r3, #0 + 800139e: 2300 movs r3, #0 b LoopCopyDataInit - 8003ff8: e002 b.n 8004000 + 80013a0: e002 b.n 80013a8 -08003ffa : +080013a2 : CopyDataInit: ldr r4, [r2, r3] - 8003ffa: 58d4 ldr r4, [r2, r3] + 80013a2: 58d4 ldr r4, [r2, r3] str r4, [r0, r3] - 8003ffc: 50c4 str r4, [r0, r3] + 80013a4: 50c4 str r4, [r0, r3] adds r3, r3, #4 - 8003ffe: 3304 adds r3, #4 + 80013a6: 3304 adds r3, #4 -08004000 : +080013a8 : LoopCopyDataInit: adds r4, r0, r3 - 8004000: 18c4 adds r4, r0, r3 + 80013a8: 18c4 adds r4, r0, r3 cmp r4, r1 - 8004002: 428c cmp r4, r1 + 80013aa: 428c cmp r4, r1 bcc CopyDataInit - 8004004: d3f9 bcc.n 8003ffa + 80013ac: d3f9 bcc.n 80013a2 /* Zero fill the bss segment. */ ldr r2, =_sbss - 8004006: 4a0a ldr r2, [pc, #40] @ (8004030 ) + 80013ae: 4a0a ldr r2, [pc, #40] @ (80013d8 ) ldr r4, =_ebss - 8004008: 4c0a ldr r4, [pc, #40] @ (8004034 ) + 80013b0: 4c0a ldr r4, [pc, #40] @ (80013dc ) movs r3, #0 - 800400a: 2300 movs r3, #0 + 80013b2: 2300 movs r3, #0 b LoopFillZerobss - 800400c: e001 b.n 8004012 + 80013b4: e001 b.n 80013ba -0800400e : +080013b6 : FillZerobss: str r3, [r2] - 800400e: 6013 str r3, [r2, #0] + 80013b6: 6013 str r3, [r2, #0] adds r2, r2, #4 - 8004010: 3204 adds r2, #4 + 80013b8: 3204 adds r2, #4 -08004012 : +080013ba : LoopFillZerobss: cmp r2, r4 - 8004012: 42a2 cmp r2, r4 + 80013ba: 42a2 cmp r2, r4 bcc FillZerobss - 8004014: d3fb bcc.n 800400e + 80013bc: d3fb bcc.n 80013b6 /* Call static constructors */ bl __libc_init_array - 8004016: f003 ffd3 bl 8007fc0 <__libc_init_array> + 80013be: f002 fa69 bl 8003894 <__libc_init_array> /* Call the application's entry point.*/ bl main - 800401a: f7fe ff6f bl 8002efc
+ 80013c2: f7ff fdb5 bl 8000f30
-0800401e : +080013c6 : LoopForever: b LoopForever - 800401e: e7fe b.n 800401e + 80013c6: e7fe b.n 80013c6 ldr sp, =_estack /* Set stack pointer */ - 8004020: 20020000 .word 0x20020000 + 80013c8: 20020000 .word 0x20020000 ldr r0, =_sdata - 8004024: 20000000 .word 0x20000000 + 80013cc: 20000000 .word 0x20000000 ldr r1, =_edata - 8004028: 200001d4 .word 0x200001d4 + 80013d0: 200001d4 .word 0x200001d4 ldr r2, =_sidata - 800402c: 0800c12c .word 0x0800c12c + 80013d4: 08005a0c .word 0x08005a0c ldr r2, =_sbss - 8004030: 200001d4 .word 0x200001d4 + 80013d8: 200001d4 .word 0x200001d4 ldr r4, =_ebss - 8004034: 200004f0 .word 0x200004f0 + 80013dc: 200007ac .word 0x200007ac -08004038 : +080013e0 : * @retval : None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8004038: e7fe b.n 8004038 + 80013e0: e7fe b.n 80013e0 ... -0800403c : +080013e4 : * each 1ms in the SysTick_Handler() interrupt handler. * * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { - 800403c: b580 push {r7, lr} - 800403e: b082 sub sp, #8 - 8004040: af00 add r7, sp, #0 + 80013e4: b580 push {r7, lr} + 80013e6: b082 sub sp, #8 + 80013e8: af00 add r7, sp, #0 HAL_StatusTypeDef status = HAL_OK; - 8004042: 2300 movs r3, #0 - 8004044: 71fb strb r3, [r7, #7] + 80013ea: 2300 movs r3, #0 + 80013ec: 71fb strb r3, [r7, #7] #if (DATA_CACHE_ENABLE == 0) __HAL_FLASH_DATA_CACHE_DISABLE(); #endif /* DATA_CACHE_ENABLE */ #if (PREFETCH_ENABLE != 0) __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); - 8004046: 4b0c ldr r3, [pc, #48] @ (8004078 ) - 8004048: 681b ldr r3, [r3, #0] - 800404a: 4a0b ldr r2, [pc, #44] @ (8004078 ) - 800404c: f443 7380 orr.w r3, r3, #256 @ 0x100 - 8004050: 6013 str r3, [r2, #0] + 80013ee: 4b0c ldr r3, [pc, #48] @ (8001420 ) + 80013f0: 681b ldr r3, [r3, #0] + 80013f2: 4a0b ldr r2, [pc, #44] @ (8001420 ) + 80013f4: f443 7380 orr.w r3, r3, #256 @ 0x100 + 80013f8: 6013 str r3, [r2, #0] #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); - 8004052: 2003 movs r0, #3 - 8004054: f000 f944 bl 80042e0 + 80013fa: 2003 movs r0, #3 + 80013fc: f000 f944 bl 8001688 /* Use SysTick as time base source and configure 1ms tick (default clock after Reset is MSI) */ if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) - 8004058: 2000 movs r0, #0 - 800405a: f000 f80f bl 800407c - 800405e: 4603 mov r3, r0 - 8004060: 2b00 cmp r3, #0 - 8004062: d002 beq.n 800406a + 8001400: 2000 movs r0, #0 + 8001402: f000 f80f bl 8001424 + 8001406: 4603 mov r3, r0 + 8001408: 2b00 cmp r3, #0 + 800140a: d002 beq.n 8001412 { status = HAL_ERROR; - 8004064: 2301 movs r3, #1 - 8004066: 71fb strb r3, [r7, #7] - 8004068: e001 b.n 800406e + 800140c: 2301 movs r3, #1 + 800140e: 71fb strb r3, [r7, #7] + 8001410: e001 b.n 8001416 } else { /* Init the low level hardware */ HAL_MspInit(); - 800406a: f7ff fdd7 bl 8003c1c + 8001412: f7ff fe4d bl 80010b0 } /* Return function status */ return status; - 800406e: 79fb ldrb r3, [r7, #7] + 8001416: 79fb ldrb r3, [r7, #7] } - 8004070: 4618 mov r0, r3 - 8004072: 3708 adds r7, #8 - 8004074: 46bd mov sp, r7 - 8004076: bd80 pop {r7, pc} - 8004078: 40022000 .word 0x40022000 + 8001418: 4618 mov r0, r3 + 800141a: 3708 adds r7, #8 + 800141c: 46bd mov sp, r7 + 800141e: bd80 pop {r7, pc} + 8001420: 40022000 .word 0x40022000 -0800407c : +08001424 : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { - 800407c: b580 push {r7, lr} - 800407e: b084 sub sp, #16 - 8004080: af00 add r7, sp, #0 - 8004082: 6078 str r0, [r7, #4] + 8001424: b580 push {r7, lr} + 8001426: b084 sub sp, #16 + 8001428: af00 add r7, sp, #0 + 800142a: 6078 str r0, [r7, #4] HAL_StatusTypeDef status = HAL_OK; - 8004084: 2300 movs r3, #0 - 8004086: 73fb strb r3, [r7, #15] + 800142c: 2300 movs r3, #0 + 800142e: 73fb strb r3, [r7, #15] /* Check uwTickFreq for MisraC 2012 (even if uwTickFreq is a enum type that doesn't take the value zero)*/ if ((uint32_t)uwTickFreq != 0U) - 8004088: 4b17 ldr r3, [pc, #92] @ (80040e8 ) - 800408a: 781b ldrb r3, [r3, #0] - 800408c: 2b00 cmp r3, #0 - 800408e: d023 beq.n 80040d8 + 8001430: 4b17 ldr r3, [pc, #92] @ (8001490 ) + 8001432: 781b ldrb r3, [r3, #0] + 8001434: 2b00 cmp r3, #0 + 8001436: d023 beq.n 8001480 { /*Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / (uint32_t)uwTickFreq)) == 0U) - 8004090: 4b16 ldr r3, [pc, #88] @ (80040ec ) - 8004092: 681a ldr r2, [r3, #0] - 8004094: 4b14 ldr r3, [pc, #80] @ (80040e8 ) - 8004096: 781b ldrb r3, [r3, #0] - 8004098: 4619 mov r1, r3 - 800409a: f44f 737a mov.w r3, #1000 @ 0x3e8 - 800409e: fbb3 f3f1 udiv r3, r3, r1 - 80040a2: fbb2 f3f3 udiv r3, r2, r3 - 80040a6: 4618 mov r0, r3 - 80040a8: f000 f941 bl 800432e - 80040ac: 4603 mov r3, r0 - 80040ae: 2b00 cmp r3, #0 - 80040b0: d10f bne.n 80040d2 + 8001438: 4b16 ldr r3, [pc, #88] @ (8001494 ) + 800143a: 681a ldr r2, [r3, #0] + 800143c: 4b14 ldr r3, [pc, #80] @ (8001490 ) + 800143e: 781b ldrb r3, [r3, #0] + 8001440: 4619 mov r1, r3 + 8001442: f44f 737a mov.w r3, #1000 @ 0x3e8 + 8001446: fbb3 f3f1 udiv r3, r3, r1 + 800144a: fbb2 f3f3 udiv r3, r2, r3 + 800144e: 4618 mov r0, r3 + 8001450: f000 f941 bl 80016d6 + 8001454: 4603 mov r3, r0 + 8001456: 2b00 cmp r3, #0 + 8001458: d10f bne.n 800147a { /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 80040b2: 687b ldr r3, [r7, #4] - 80040b4: 2b0f cmp r3, #15 - 80040b6: d809 bhi.n 80040cc + 800145a: 687b ldr r3, [r7, #4] + 800145c: 2b0f cmp r3, #15 + 800145e: d809 bhi.n 8001474 { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); - 80040b8: 2200 movs r2, #0 - 80040ba: 6879 ldr r1, [r7, #4] - 80040bc: f04f 30ff mov.w r0, #4294967295 - 80040c0: f000 f919 bl 80042f6 + 8001460: 2200 movs r2, #0 + 8001462: 6879 ldr r1, [r7, #4] + 8001464: f04f 30ff mov.w r0, #4294967295 + 8001468: f000 f919 bl 800169e uwTickPrio = TickPriority; - 80040c4: 4a0a ldr r2, [pc, #40] @ (80040f0 ) - 80040c6: 687b ldr r3, [r7, #4] - 80040c8: 6013 str r3, [r2, #0] - 80040ca: e007 b.n 80040dc + 800146c: 4a0a ldr r2, [pc, #40] @ (8001498 ) + 800146e: 687b ldr r3, [r7, #4] + 8001470: 6013 str r3, [r2, #0] + 8001472: e007 b.n 8001484 } else { status = HAL_ERROR; - 80040cc: 2301 movs r3, #1 - 80040ce: 73fb strb r3, [r7, #15] - 80040d0: e004 b.n 80040dc + 8001474: 2301 movs r3, #1 + 8001476: 73fb strb r3, [r7, #15] + 8001478: e004 b.n 8001484 } } else { status = HAL_ERROR; - 80040d2: 2301 movs r3, #1 - 80040d4: 73fb strb r3, [r7, #15] - 80040d6: e001 b.n 80040dc + 800147a: 2301 movs r3, #1 + 800147c: 73fb strb r3, [r7, #15] + 800147e: e001 b.n 8001484 } } else { status = HAL_ERROR; - 80040d8: 2301 movs r3, #1 - 80040da: 73fb strb r3, [r7, #15] + 8001480: 2301 movs r3, #1 + 8001482: 73fb strb r3, [r7, #15] } /* Return function status */ return status; - 80040dc: 7bfb ldrb r3, [r7, #15] + 8001484: 7bfb ldrb r3, [r7, #15] } - 80040de: 4618 mov r0, r3 - 80040e0: 3710 adds r7, #16 - 80040e2: 46bd mov sp, r7 - 80040e4: bd80 pop {r7, pc} - 80040e6: bf00 nop - 80040e8: 20000008 .word 0x20000008 - 80040ec: 20000000 .word 0x20000000 - 80040f0: 20000004 .word 0x20000004 + 8001486: 4618 mov r0, r3 + 8001488: 3710 adds r7, #16 + 800148a: 46bd mov sp, r7 + 800148c: bd80 pop {r7, pc} + 800148e: bf00 nop + 8001490: 20000008 .word 0x20000008 + 8001494: 20000000 .word 0x20000000 + 8001498: 20000004 .word 0x20000004 -080040f4 : +0800149c : * @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) { - 80040f4: b480 push {r7} - 80040f6: af00 add r7, sp, #0 + 800149c: b480 push {r7} + 800149e: af00 add r7, sp, #0 uwTick += (uint32_t)uwTickFreq; - 80040f8: 4b06 ldr r3, [pc, #24] @ (8004114 ) - 80040fa: 781b ldrb r3, [r3, #0] - 80040fc: 461a mov r2, r3 - 80040fe: 4b06 ldr r3, [pc, #24] @ (8004118 ) - 8004100: 681b ldr r3, [r3, #0] - 8004102: 4413 add r3, r2 - 8004104: 4a04 ldr r2, [pc, #16] @ (8004118 ) - 8004106: 6013 str r3, [r2, #0] + 80014a0: 4b06 ldr r3, [pc, #24] @ (80014bc ) + 80014a2: 781b ldrb r3, [r3, #0] + 80014a4: 461a mov r2, r3 + 80014a6: 4b06 ldr r3, [pc, #24] @ (80014c0 ) + 80014a8: 681b ldr r3, [r3, #0] + 80014aa: 4413 add r3, r2 + 80014ac: 4a04 ldr r2, [pc, #16] @ (80014c0 ) + 80014ae: 6013 str r3, [r2, #0] } - 8004108: bf00 nop - 800410a: 46bd mov sp, r7 - 800410c: f85d 7b04 ldr.w r7, [sp], #4 - 8004110: 4770 bx lr - 8004112: bf00 nop - 8004114: 20000008 .word 0x20000008 - 8004118: 200003a0 .word 0x200003a0 + 80014b0: bf00 nop + 80014b2: 46bd mov sp, r7 + 80014b4: f85d 7b04 ldr.w r7, [sp], #4 + 80014b8: 4770 bx lr + 80014ba: bf00 nop + 80014bc: 20000008 .word 0x20000008 + 80014c0: 2000065c .word 0x2000065c -0800411c : +080014c4 : * @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) { - 800411c: b480 push {r7} - 800411e: af00 add r7, sp, #0 + 80014c4: b480 push {r7} + 80014c6: af00 add r7, sp, #0 return uwTick; - 8004120: 4b03 ldr r3, [pc, #12] @ (8004130 ) - 8004122: 681b ldr r3, [r3, #0] + 80014c8: 4b03 ldr r3, [pc, #12] @ (80014d8 ) + 80014ca: 681b ldr r3, [r3, #0] } - 8004124: 4618 mov r0, r3 - 8004126: 46bd mov sp, r7 - 8004128: f85d 7b04 ldr.w r7, [sp], #4 - 800412c: 4770 bx lr - 800412e: bf00 nop - 8004130: 200003a0 .word 0x200003a0 + 80014cc: 4618 mov r0, r3 + 80014ce: 46bd mov sp, r7 + 80014d0: f85d 7b04 ldr.w r7, [sp], #4 + 80014d4: 4770 bx lr + 80014d6: bf00 nop + 80014d8: 2000065c .word 0x2000065c -08004134 : +080014dc : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { - 8004134: b580 push {r7, lr} - 8004136: b084 sub sp, #16 - 8004138: af00 add r7, sp, #0 - 800413a: 6078 str r0, [r7, #4] + 80014dc: b580 push {r7, lr} + 80014de: b084 sub sp, #16 + 80014e0: af00 add r7, sp, #0 + 80014e2: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); - 800413c: f7ff ffee bl 800411c - 8004140: 60b8 str r0, [r7, #8] + 80014e4: f7ff ffee bl 80014c4 + 80014e8: 60b8 str r0, [r7, #8] uint32_t wait = Delay; - 8004142: 687b ldr r3, [r7, #4] - 8004144: 60fb str r3, [r7, #12] + 80014ea: 687b ldr r3, [r7, #4] + 80014ec: 60fb str r3, [r7, #12] /* Add a period to guaranty minimum wait */ if (wait < HAL_MAX_DELAY) - 8004146: 68fb ldr r3, [r7, #12] - 8004148: f1b3 3fff cmp.w r3, #4294967295 - 800414c: d005 beq.n 800415a + 80014ee: 68fb ldr r3, [r7, #12] + 80014f0: f1b3 3fff cmp.w r3, #4294967295 + 80014f4: d005 beq.n 8001502 { wait += (uint32_t)uwTickFreq; - 800414e: 4b0a ldr r3, [pc, #40] @ (8004178 ) - 8004150: 781b ldrb r3, [r3, #0] - 8004152: 461a mov r2, r3 - 8004154: 68fb ldr r3, [r7, #12] - 8004156: 4413 add r3, r2 - 8004158: 60fb str r3, [r7, #12] + 80014f6: 4b0a ldr r3, [pc, #40] @ (8001520 ) + 80014f8: 781b ldrb r3, [r3, #0] + 80014fa: 461a mov r2, r3 + 80014fc: 68fb ldr r3, [r7, #12] + 80014fe: 4413 add r3, r2 + 8001500: 60fb str r3, [r7, #12] } while ((HAL_GetTick() - tickstart) < wait) - 800415a: bf00 nop - 800415c: f7ff ffde bl 800411c - 8004160: 4602 mov r2, r0 - 8004162: 68bb ldr r3, [r7, #8] - 8004164: 1ad3 subs r3, r2, r3 - 8004166: 68fa ldr r2, [r7, #12] - 8004168: 429a cmp r2, r3 - 800416a: d8f7 bhi.n 800415c + 8001502: bf00 nop + 8001504: f7ff ffde bl 80014c4 + 8001508: 4602 mov r2, r0 + 800150a: 68bb ldr r3, [r7, #8] + 800150c: 1ad3 subs r3, r2, r3 + 800150e: 68fa ldr r2, [r7, #12] + 8001510: 429a cmp r2, r3 + 8001512: d8f7 bhi.n 8001504 { } } - 800416c: bf00 nop - 800416e: bf00 nop - 8004170: 3710 adds r7, #16 - 8004172: 46bd mov sp, r7 - 8004174: bd80 pop {r7, pc} - 8004176: bf00 nop - 8004178: 20000008 .word 0x20000008 + 8001514: bf00 nop + 8001516: bf00 nop + 8001518: 3710 adds r7, #16 + 800151a: 46bd mov sp, r7 + 800151c: bd80 pop {r7, pc} + 800151e: bf00 nop + 8001520: 20000008 .word 0x20000008 -0800417c <__NVIC_SetPriorityGrouping>: +08001524 <__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) { - 800417c: b480 push {r7} - 800417e: b085 sub sp, #20 - 8004180: af00 add r7, sp, #0 - 8004182: 6078 str r0, [r7, #4] + 8001524: b480 push {r7} + 8001526: b085 sub sp, #20 + 8001528: af00 add r7, sp, #0 + 800152a: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8004184: 687b ldr r3, [r7, #4] - 8004186: f003 0307 and.w r3, r3, #7 - 800418a: 60fb str r3, [r7, #12] + 800152c: 687b ldr r3, [r7, #4] + 800152e: f003 0307 and.w r3, r3, #7 + 8001532: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ - 800418c: 4b0c ldr r3, [pc, #48] @ (80041c0 <__NVIC_SetPriorityGrouping+0x44>) - 800418e: 68db ldr r3, [r3, #12] - 8004190: 60bb str r3, [r7, #8] + 8001534: 4b0c ldr r3, [pc, #48] @ (8001568 <__NVIC_SetPriorityGrouping+0x44>) + 8001536: 68db ldr r3, [r3, #12] + 8001538: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 8004192: 68ba ldr r2, [r7, #8] - 8004194: f64f 03ff movw r3, #63743 @ 0xf8ff - 8004198: 4013 ands r3, r2 - 800419a: 60bb str r3, [r7, #8] + 800153a: 68ba ldr r2, [r7, #8] + 800153c: f64f 03ff movw r3, #63743 @ 0xf8ff + 8001540: 4013 ands r3, r2 + 8001542: 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 */ - 800419c: 68fb ldr r3, [r7, #12] - 800419e: 021a lsls r2, r3, #8 + 8001544: 68fb ldr r3, [r7, #12] + 8001546: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 80041a0: 68bb ldr r3, [r7, #8] - 80041a2: 4313 orrs r3, r2 + 8001548: 68bb ldr r3, [r7, #8] + 800154a: 4313 orrs r3, r2 reg_value = (reg_value | - 80041a4: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 - 80041a8: f443 3300 orr.w r3, r3, #131072 @ 0x20000 - 80041ac: 60bb str r3, [r7, #8] + 800154c: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 + 8001550: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 8001554: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; - 80041ae: 4a04 ldr r2, [pc, #16] @ (80041c0 <__NVIC_SetPriorityGrouping+0x44>) - 80041b0: 68bb ldr r3, [r7, #8] - 80041b2: 60d3 str r3, [r2, #12] + 8001556: 4a04 ldr r2, [pc, #16] @ (8001568 <__NVIC_SetPriorityGrouping+0x44>) + 8001558: 68bb ldr r3, [r7, #8] + 800155a: 60d3 str r3, [r2, #12] } - 80041b4: bf00 nop - 80041b6: 3714 adds r7, #20 - 80041b8: 46bd mov sp, r7 - 80041ba: f85d 7b04 ldr.w r7, [sp], #4 - 80041be: 4770 bx lr - 80041c0: e000ed00 .word 0xe000ed00 + 800155c: bf00 nop + 800155e: 3714 adds r7, #20 + 8001560: 46bd mov sp, r7 + 8001562: f85d 7b04 ldr.w r7, [sp], #4 + 8001566: 4770 bx lr + 8001568: e000ed00 .word 0xe000ed00 -080041c4 <__NVIC_GetPriorityGrouping>: +0800156c <__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) { - 80041c4: b480 push {r7} - 80041c6: af00 add r7, sp, #0 + 800156c: b480 push {r7} + 800156e: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 80041c8: 4b04 ldr r3, [pc, #16] @ (80041dc <__NVIC_GetPriorityGrouping+0x18>) - 80041ca: 68db ldr r3, [r3, #12] - 80041cc: 0a1b lsrs r3, r3, #8 - 80041ce: f003 0307 and.w r3, r3, #7 + 8001570: 4b04 ldr r3, [pc, #16] @ (8001584 <__NVIC_GetPriorityGrouping+0x18>) + 8001572: 68db ldr r3, [r3, #12] + 8001574: 0a1b lsrs r3, r3, #8 + 8001576: f003 0307 and.w r3, r3, #7 } - 80041d2: 4618 mov r0, r3 - 80041d4: 46bd mov sp, r7 - 80041d6: f85d 7b04 ldr.w r7, [sp], #4 - 80041da: 4770 bx lr - 80041dc: e000ed00 .word 0xe000ed00 + 800157a: 4618 mov r0, r3 + 800157c: 46bd mov sp, r7 + 800157e: f85d 7b04 ldr.w r7, [sp], #4 + 8001582: 4770 bx lr + 8001584: e000ed00 .word 0xe000ed00 -080041e0 <__NVIC_SetPriority>: +08001588 <__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) { - 80041e0: b480 push {r7} - 80041e2: b083 sub sp, #12 - 80041e4: af00 add r7, sp, #0 - 80041e6: 4603 mov r3, r0 - 80041e8: 6039 str r1, [r7, #0] - 80041ea: 71fb strb r3, [r7, #7] + 8001588: b480 push {r7} + 800158a: b083 sub sp, #12 + 800158c: af00 add r7, sp, #0 + 800158e: 4603 mov r3, r0 + 8001590: 6039 str r1, [r7, #0] + 8001592: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 80041ec: f997 3007 ldrsb.w r3, [r7, #7] - 80041f0: 2b00 cmp r3, #0 - 80041f2: db0a blt.n 800420a <__NVIC_SetPriority+0x2a> + 8001594: f997 3007 ldrsb.w r3, [r7, #7] + 8001598: 2b00 cmp r3, #0 + 800159a: db0a blt.n 80015b2 <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 80041f4: 683b ldr r3, [r7, #0] - 80041f6: b2da uxtb r2, r3 - 80041f8: 490c ldr r1, [pc, #48] @ (800422c <__NVIC_SetPriority+0x4c>) - 80041fa: f997 3007 ldrsb.w r3, [r7, #7] - 80041fe: 0112 lsls r2, r2, #4 - 8004200: b2d2 uxtb r2, r2 - 8004202: 440b add r3, r1 - 8004204: f883 2300 strb.w r2, [r3, #768] @ 0x300 + 800159c: 683b ldr r3, [r7, #0] + 800159e: b2da uxtb r2, r3 + 80015a0: 490c ldr r1, [pc, #48] @ (80015d4 <__NVIC_SetPriority+0x4c>) + 80015a2: f997 3007 ldrsb.w r3, [r7, #7] + 80015a6: 0112 lsls r2, r2, #4 + 80015a8: b2d2 uxtb r2, r2 + 80015aa: 440b add r3, r1 + 80015ac: f883 2300 strb.w r2, [r3, #768] @ 0x300 } else { SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); } } - 8004208: e00a b.n 8004220 <__NVIC_SetPriority+0x40> + 80015b0: e00a b.n 80015c8 <__NVIC_SetPriority+0x40> SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 800420a: 683b ldr r3, [r7, #0] - 800420c: b2da uxtb r2, r3 - 800420e: 4908 ldr r1, [pc, #32] @ (8004230 <__NVIC_SetPriority+0x50>) - 8004210: 79fb ldrb r3, [r7, #7] - 8004212: f003 030f and.w r3, r3, #15 - 8004216: 3b04 subs r3, #4 - 8004218: 0112 lsls r2, r2, #4 - 800421a: b2d2 uxtb r2, r2 - 800421c: 440b add r3, r1 - 800421e: 761a strb r2, [r3, #24] + 80015b2: 683b ldr r3, [r7, #0] + 80015b4: b2da uxtb r2, r3 + 80015b6: 4908 ldr r1, [pc, #32] @ (80015d8 <__NVIC_SetPriority+0x50>) + 80015b8: 79fb ldrb r3, [r7, #7] + 80015ba: f003 030f and.w r3, r3, #15 + 80015be: 3b04 subs r3, #4 + 80015c0: 0112 lsls r2, r2, #4 + 80015c2: b2d2 uxtb r2, r2 + 80015c4: 440b add r3, r1 + 80015c6: 761a strb r2, [r3, #24] } - 8004220: bf00 nop - 8004222: 370c adds r7, #12 - 8004224: 46bd mov sp, r7 - 8004226: f85d 7b04 ldr.w r7, [sp], #4 - 800422a: 4770 bx lr - 800422c: e000e100 .word 0xe000e100 - 8004230: e000ed00 .word 0xe000ed00 + 80015c8: bf00 nop + 80015ca: 370c adds r7, #12 + 80015cc: 46bd mov sp, r7 + 80015ce: f85d 7b04 ldr.w r7, [sp], #4 + 80015d2: 4770 bx lr + 80015d4: e000e100 .word 0xe000e100 + 80015d8: e000ed00 .word 0xe000ed00 -08004234 : +080015dc : \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) { - 8004234: b480 push {r7} - 8004236: b089 sub sp, #36 @ 0x24 - 8004238: af00 add r7, sp, #0 - 800423a: 60f8 str r0, [r7, #12] - 800423c: 60b9 str r1, [r7, #8] - 800423e: 607a str r2, [r7, #4] + 80015dc: b480 push {r7} + 80015de: b089 sub sp, #36 @ 0x24 + 80015e0: af00 add r7, sp, #0 + 80015e2: 60f8 str r0, [r7, #12] + 80015e4: 60b9 str r1, [r7, #8] + 80015e6: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8004240: 68fb ldr r3, [r7, #12] - 8004242: f003 0307 and.w r3, r3, #7 - 8004246: 61fb str r3, [r7, #28] + 80015e8: 68fb ldr r3, [r7, #12] + 80015ea: f003 0307 and.w r3, r3, #7 + 80015ee: 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); - 8004248: 69fb ldr r3, [r7, #28] - 800424a: f1c3 0307 rsb r3, r3, #7 - 800424e: 2b04 cmp r3, #4 - 8004250: bf28 it cs - 8004252: 2304 movcs r3, #4 - 8004254: 61bb str r3, [r7, #24] + 80015f0: 69fb ldr r3, [r7, #28] + 80015f2: f1c3 0307 rsb r3, r3, #7 + 80015f6: 2b04 cmp r3, #4 + 80015f8: bf28 it cs + 80015fa: 2304 movcs r3, #4 + 80015fc: 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)); - 8004256: 69fb ldr r3, [r7, #28] - 8004258: 3304 adds r3, #4 - 800425a: 2b06 cmp r3, #6 - 800425c: d902 bls.n 8004264 - 800425e: 69fb ldr r3, [r7, #28] - 8004260: 3b03 subs r3, #3 - 8004262: e000 b.n 8004266 - 8004264: 2300 movs r3, #0 - 8004266: 617b str r3, [r7, #20] + 80015fe: 69fb ldr r3, [r7, #28] + 8001600: 3304 adds r3, #4 + 8001602: 2b06 cmp r3, #6 + 8001604: d902 bls.n 800160c + 8001606: 69fb ldr r3, [r7, #28] + 8001608: 3b03 subs r3, #3 + 800160a: e000 b.n 800160e + 800160c: 2300 movs r3, #0 + 800160e: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8004268: f04f 32ff mov.w r2, #4294967295 - 800426c: 69bb ldr r3, [r7, #24] - 800426e: fa02 f303 lsl.w r3, r2, r3 - 8004272: 43da mvns r2, r3 - 8004274: 68bb ldr r3, [r7, #8] - 8004276: 401a ands r2, r3 - 8004278: 697b ldr r3, [r7, #20] - 800427a: 409a lsls r2, r3 + 8001610: f04f 32ff mov.w r2, #4294967295 + 8001614: 69bb ldr r3, [r7, #24] + 8001616: fa02 f303 lsl.w r3, r2, r3 + 800161a: 43da mvns r2, r3 + 800161c: 68bb ldr r3, [r7, #8] + 800161e: 401a ands r2, r3 + 8001620: 697b ldr r3, [r7, #20] + 8001622: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 800427c: f04f 31ff mov.w r1, #4294967295 - 8004280: 697b ldr r3, [r7, #20] - 8004282: fa01 f303 lsl.w r3, r1, r3 - 8004286: 43d9 mvns r1, r3 - 8004288: 687b ldr r3, [r7, #4] - 800428a: 400b ands r3, r1 + 8001624: f04f 31ff mov.w r1, #4294967295 + 8001628: 697b ldr r3, [r7, #20] + 800162a: fa01 f303 lsl.w r3, r1, r3 + 800162e: 43d9 mvns r1, r3 + 8001630: 687b ldr r3, [r7, #4] + 8001632: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 800428c: 4313 orrs r3, r2 + 8001634: 4313 orrs r3, r2 ); } - 800428e: 4618 mov r0, r3 - 8004290: 3724 adds r7, #36 @ 0x24 - 8004292: 46bd mov sp, r7 - 8004294: f85d 7b04 ldr.w r7, [sp], #4 - 8004298: 4770 bx lr + 8001636: 4618 mov r0, r3 + 8001638: 3724 adds r7, #36 @ 0x24 + 800163a: 46bd mov sp, r7 + 800163c: f85d 7b04 ldr.w r7, [sp], #4 + 8001640: 4770 bx lr ... -0800429c : +08001644 : \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) { - 800429c: b580 push {r7, lr} - 800429e: b082 sub sp, #8 - 80042a0: af00 add r7, sp, #0 - 80042a2: 6078 str r0, [r7, #4] + 8001644: b580 push {r7, lr} + 8001646: b082 sub sp, #8 + 8001648: af00 add r7, sp, #0 + 800164a: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 80042a4: 687b ldr r3, [r7, #4] - 80042a6: 3b01 subs r3, #1 - 80042a8: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 - 80042ac: d301 bcc.n 80042b2 + 800164c: 687b ldr r3, [r7, #4] + 800164e: 3b01 subs r3, #1 + 8001650: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 + 8001654: d301 bcc.n 800165a { return (1UL); /* Reload value impossible */ - 80042ae: 2301 movs r3, #1 - 80042b0: e00f b.n 80042d2 + 8001656: 2301 movs r3, #1 + 8001658: e00f b.n 800167a } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 80042b2: 4a0a ldr r2, [pc, #40] @ (80042dc ) - 80042b4: 687b ldr r3, [r7, #4] - 80042b6: 3b01 subs r3, #1 - 80042b8: 6053 str r3, [r2, #4] + 800165a: 4a0a ldr r2, [pc, #40] @ (8001684 ) + 800165c: 687b ldr r3, [r7, #4] + 800165e: 3b01 subs r3, #1 + 8001660: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - 80042ba: 210f movs r1, #15 - 80042bc: f04f 30ff mov.w r0, #4294967295 - 80042c0: f7ff ff8e bl 80041e0 <__NVIC_SetPriority> + 8001662: 210f movs r1, #15 + 8001664: f04f 30ff mov.w r0, #4294967295 + 8001668: f7ff ff8e bl 8001588 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 80042c4: 4b05 ldr r3, [pc, #20] @ (80042dc ) - 80042c6: 2200 movs r2, #0 - 80042c8: 609a str r2, [r3, #8] + 800166c: 4b05 ldr r3, [pc, #20] @ (8001684 ) + 800166e: 2200 movs r2, #0 + 8001670: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 80042ca: 4b04 ldr r3, [pc, #16] @ (80042dc ) - 80042cc: 2207 movs r2, #7 - 80042ce: 601a str r2, [r3, #0] + 8001672: 4b04 ldr r3, [pc, #16] @ (8001684 ) + 8001674: 2207 movs r2, #7 + 8001676: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ - 80042d0: 2300 movs r3, #0 + 8001678: 2300 movs r3, #0 } - 80042d2: 4618 mov r0, r3 - 80042d4: 3708 adds r7, #8 - 80042d6: 46bd mov sp, r7 - 80042d8: bd80 pop {r7, pc} - 80042da: bf00 nop - 80042dc: e000e010 .word 0xe000e010 + 800167a: 4618 mov r0, r3 + 800167c: 3708 adds r7, #8 + 800167e: 46bd mov sp, r7 + 8001680: bd80 pop {r7, pc} + 8001682: bf00 nop + 8001684: e000e010 .word 0xe000e010 -080042e0 : +08001688 : * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { - 80042e0: b580 push {r7, lr} - 80042e2: b082 sub sp, #8 - 80042e4: af00 add r7, sp, #0 - 80042e6: 6078 str r0, [r7, #4] + 8001688: b580 push {r7, lr} + 800168a: b082 sub sp, #8 + 800168c: af00 add r7, sp, #0 + 800168e: 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); - 80042e8: 6878 ldr r0, [r7, #4] - 80042ea: f7ff ff47 bl 800417c <__NVIC_SetPriorityGrouping> + 8001690: 6878 ldr r0, [r7, #4] + 8001692: f7ff ff47 bl 8001524 <__NVIC_SetPriorityGrouping> } - 80042ee: bf00 nop - 80042f0: 3708 adds r7, #8 - 80042f2: 46bd mov sp, r7 - 80042f4: bd80 pop {r7, pc} + 8001696: bf00 nop + 8001698: 3708 adds r7, #8 + 800169a: 46bd mov sp, r7 + 800169c: bd80 pop {r7, pc} -080042f6 : +0800169e : * 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) { - 80042f6: b580 push {r7, lr} - 80042f8: b086 sub sp, #24 - 80042fa: af00 add r7, sp, #0 - 80042fc: 4603 mov r3, r0 - 80042fe: 60b9 str r1, [r7, #8] - 8004300: 607a str r2, [r7, #4] - 8004302: 73fb strb r3, [r7, #15] + 800169e: b580 push {r7, lr} + 80016a0: b086 sub sp, #24 + 80016a2: af00 add r7, sp, #0 + 80016a4: 4603 mov r3, r0 + 80016a6: 60b9 str r1, [r7, #8] + 80016a8: 607a str r2, [r7, #4] + 80016aa: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00; - 8004304: 2300 movs r3, #0 - 8004306: 617b str r3, [r7, #20] + 80016ac: 2300 movs r3, #0 + 80016ae: 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(); - 8004308: f7ff ff5c bl 80041c4 <__NVIC_GetPriorityGrouping> - 800430c: 6178 str r0, [r7, #20] + 80016b0: f7ff ff5c bl 800156c <__NVIC_GetPriorityGrouping> + 80016b4: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 800430e: 687a ldr r2, [r7, #4] - 8004310: 68b9 ldr r1, [r7, #8] - 8004312: 6978 ldr r0, [r7, #20] - 8004314: f7ff ff8e bl 8004234 - 8004318: 4602 mov r2, r0 - 800431a: f997 300f ldrsb.w r3, [r7, #15] - 800431e: 4611 mov r1, r2 - 8004320: 4618 mov r0, r3 - 8004322: f7ff ff5d bl 80041e0 <__NVIC_SetPriority> + 80016b6: 687a ldr r2, [r7, #4] + 80016b8: 68b9 ldr r1, [r7, #8] + 80016ba: 6978 ldr r0, [r7, #20] + 80016bc: f7ff ff8e bl 80015dc + 80016c0: 4602 mov r2, r0 + 80016c2: f997 300f ldrsb.w r3, [r7, #15] + 80016c6: 4611 mov r1, r2 + 80016c8: 4618 mov r0, r3 + 80016ca: f7ff ff5d bl 8001588 <__NVIC_SetPriority> } - 8004326: bf00 nop - 8004328: 3718 adds r7, #24 - 800432a: 46bd mov sp, r7 - 800432c: bd80 pop {r7, pc} + 80016ce: bf00 nop + 80016d0: 3718 adds r7, #24 + 80016d2: 46bd mov sp, r7 + 80016d4: bd80 pop {r7, pc} -0800432e : +080016d6 : * @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) { - 800432e: b580 push {r7, lr} - 8004330: b082 sub sp, #8 - 8004332: af00 add r7, sp, #0 - 8004334: 6078 str r0, [r7, #4] + 80016d6: b580 push {r7, lr} + 80016d8: b082 sub sp, #8 + 80016da: af00 add r7, sp, #0 + 80016dc: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); - 8004336: 6878 ldr r0, [r7, #4] - 8004338: f7ff ffb0 bl 800429c - 800433c: 4603 mov r3, r0 + 80016de: 6878 ldr r0, [r7, #4] + 80016e0: f7ff ffb0 bl 8001644 + 80016e4: 4603 mov r3, r0 } - 800433e: 4618 mov r0, r3 - 8004340: 3708 adds r7, #8 - 8004342: 46bd mov sp, r7 - 8004344: bd80 pop {r7, pc} + 80016e6: 4618 mov r0, r3 + 80016e8: 3708 adds r7, #8 + 80016ea: 46bd mov sp, r7 + 80016ec: bd80 pop {r7, pc} ... -08004348 : +080016f0 : * @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) { - 8004348: b480 push {r7} - 800434a: b087 sub sp, #28 - 800434c: af00 add r7, sp, #0 - 800434e: 6078 str r0, [r7, #4] - 8004350: 6039 str r1, [r7, #0] + 80016f0: b480 push {r7} + 80016f2: b087 sub sp, #28 + 80016f4: af00 add r7, sp, #0 + 80016f6: 6078 str r0, [r7, #4] + 80016f8: 6039 str r1, [r7, #0] uint32_t position = 0x00u; - 8004352: 2300 movs r3, #0 - 8004354: 617b str r3, [r7, #20] + 80016fa: 2300 movs r3, #0 + 80016fc: 617b str r3, [r7, #20] assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); /* Configure the port pins */ while (((GPIO_Init->Pin) >> position) != 0x00u) - 8004356: e154 b.n 8004602 + 80016fe: e154 b.n 80019aa { /* Get current io position */ iocurrent = (GPIO_Init->Pin) & (1uL << position); - 8004358: 683b ldr r3, [r7, #0] - 800435a: 681a ldr r2, [r3, #0] - 800435c: 2101 movs r1, #1 - 800435e: 697b ldr r3, [r7, #20] - 8004360: fa01 f303 lsl.w r3, r1, r3 - 8004364: 4013 ands r3, r2 - 8004366: 60fb str r3, [r7, #12] + 8001700: 683b ldr r3, [r7, #0] + 8001702: 681a ldr r2, [r3, #0] + 8001704: 2101 movs r1, #1 + 8001706: 697b ldr r3, [r7, #20] + 8001708: fa01 f303 lsl.w r3, r1, r3 + 800170c: 4013 ands r3, r2 + 800170e: 60fb str r3, [r7, #12] if (iocurrent != 0x00u) - 8004368: 68fb ldr r3, [r7, #12] - 800436a: 2b00 cmp r3, #0 - 800436c: f000 8146 beq.w 80045fc + 8001710: 68fb ldr r3, [r7, #12] + 8001712: 2b00 cmp r3, #0 + 8001714: f000 8146 beq.w 80019a4 { /*--------------------- GPIO Mode Configuration ------------------------*/ /* In case of Output or Alternate function mode selection */ if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) - 8004370: 683b ldr r3, [r7, #0] - 8004372: 685b ldr r3, [r3, #4] - 8004374: f003 0303 and.w r3, r3, #3 - 8004378: 2b01 cmp r3, #1 - 800437a: d005 beq.n 8004388 - 800437c: 683b ldr r3, [r7, #0] - 800437e: 685b ldr r3, [r3, #4] - 8004380: f003 0303 and.w r3, r3, #3 - 8004384: 2b02 cmp r3, #2 - 8004386: d130 bne.n 80043ea + 8001718: 683b ldr r3, [r7, #0] + 800171a: 685b ldr r3, [r3, #4] + 800171c: f003 0303 and.w r3, r3, #3 + 8001720: 2b01 cmp r3, #1 + 8001722: d005 beq.n 8001730 + 8001724: 683b ldr r3, [r7, #0] + 8001726: 685b ldr r3, [r3, #4] + 8001728: f003 0303 and.w r3, r3, #3 + 800172c: 2b02 cmp r3, #2 + 800172e: d130 bne.n 8001792 { /* Check the Speed parameter */ assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); /* Configure the IO Speed */ temp = GPIOx->OSPEEDR; - 8004388: 687b ldr r3, [r7, #4] - 800438a: 689b ldr r3, [r3, #8] - 800438c: 613b str r3, [r7, #16] + 8001730: 687b ldr r3, [r7, #4] + 8001732: 689b ldr r3, [r3, #8] + 8001734: 613b str r3, [r7, #16] temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2u)); - 800438e: 697b ldr r3, [r7, #20] - 8004390: 005b lsls r3, r3, #1 - 8004392: 2203 movs r2, #3 - 8004394: fa02 f303 lsl.w r3, r2, r3 - 8004398: 43db mvns r3, r3 - 800439a: 693a ldr r2, [r7, #16] - 800439c: 4013 ands r3, r2 - 800439e: 613b str r3, [r7, #16] + 8001736: 697b ldr r3, [r7, #20] + 8001738: 005b lsls r3, r3, #1 + 800173a: 2203 movs r2, #3 + 800173c: fa02 f303 lsl.w r3, r2, r3 + 8001740: 43db mvns r3, r3 + 8001742: 693a ldr r2, [r7, #16] + 8001744: 4013 ands r3, r2 + 8001746: 613b str r3, [r7, #16] temp |= (GPIO_Init->Speed << (position * 2u)); - 80043a0: 683b ldr r3, [r7, #0] - 80043a2: 68da ldr r2, [r3, #12] - 80043a4: 697b ldr r3, [r7, #20] - 80043a6: 005b lsls r3, r3, #1 - 80043a8: fa02 f303 lsl.w r3, r2, r3 - 80043ac: 693a ldr r2, [r7, #16] - 80043ae: 4313 orrs r3, r2 - 80043b0: 613b str r3, [r7, #16] + 8001748: 683b ldr r3, [r7, #0] + 800174a: 68da ldr r2, [r3, #12] + 800174c: 697b ldr r3, [r7, #20] + 800174e: 005b lsls r3, r3, #1 + 8001750: fa02 f303 lsl.w r3, r2, r3 + 8001754: 693a ldr r2, [r7, #16] + 8001756: 4313 orrs r3, r2 + 8001758: 613b str r3, [r7, #16] GPIOx->OSPEEDR = temp; - 80043b2: 687b ldr r3, [r7, #4] - 80043b4: 693a ldr r2, [r7, #16] - 80043b6: 609a str r2, [r3, #8] + 800175a: 687b ldr r3, [r7, #4] + 800175c: 693a ldr r2, [r7, #16] + 800175e: 609a str r2, [r3, #8] /* Configure the IO Output Type */ temp = GPIOx->OTYPER; - 80043b8: 687b ldr r3, [r7, #4] - 80043ba: 685b ldr r3, [r3, #4] - 80043bc: 613b str r3, [r7, #16] + 8001760: 687b ldr r3, [r7, #4] + 8001762: 685b ldr r3, [r3, #4] + 8001764: 613b str r3, [r7, #16] temp &= ~(GPIO_OTYPER_OT0 << position) ; - 80043be: 2201 movs r2, #1 - 80043c0: 697b ldr r3, [r7, #20] - 80043c2: fa02 f303 lsl.w r3, r2, r3 - 80043c6: 43db mvns r3, r3 - 80043c8: 693a ldr r2, [r7, #16] - 80043ca: 4013 ands r3, r2 - 80043cc: 613b str r3, [r7, #16] + 8001766: 2201 movs r2, #1 + 8001768: 697b ldr r3, [r7, #20] + 800176a: fa02 f303 lsl.w r3, r2, r3 + 800176e: 43db mvns r3, r3 + 8001770: 693a ldr r2, [r7, #16] + 8001772: 4013 ands r3, r2 + 8001774: 613b str r3, [r7, #16] temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); - 80043ce: 683b ldr r3, [r7, #0] - 80043d0: 685b ldr r3, [r3, #4] - 80043d2: 091b lsrs r3, r3, #4 - 80043d4: f003 0201 and.w r2, r3, #1 - 80043d8: 697b ldr r3, [r7, #20] - 80043da: fa02 f303 lsl.w r3, r2, r3 - 80043de: 693a ldr r2, [r7, #16] - 80043e0: 4313 orrs r3, r2 - 80043e2: 613b str r3, [r7, #16] + 8001776: 683b ldr r3, [r7, #0] + 8001778: 685b ldr r3, [r3, #4] + 800177a: 091b lsrs r3, r3, #4 + 800177c: f003 0201 and.w r2, r3, #1 + 8001780: 697b ldr r3, [r7, #20] + 8001782: fa02 f303 lsl.w r3, r2, r3 + 8001786: 693a ldr r2, [r7, #16] + 8001788: 4313 orrs r3, r2 + 800178a: 613b str r3, [r7, #16] GPIOx->OTYPER = temp; - 80043e4: 687b ldr r3, [r7, #4] - 80043e6: 693a ldr r2, [r7, #16] - 80043e8: 605a str r2, [r3, #4] + 800178c: 687b ldr r3, [r7, #4] + 800178e: 693a ldr r2, [r7, #16] + 8001790: 605a str r2, [r3, #4] } #endif /* STM32L471xx || STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx */ /* Activate the Pull-up or Pull down resistor for the current IO */ if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) - 80043ea: 683b ldr r3, [r7, #0] - 80043ec: 685b ldr r3, [r3, #4] - 80043ee: f003 0303 and.w r3, r3, #3 - 80043f2: 2b03 cmp r3, #3 - 80043f4: d017 beq.n 8004426 + 8001792: 683b ldr r3, [r7, #0] + 8001794: 685b ldr r3, [r3, #4] + 8001796: f003 0303 and.w r3, r3, #3 + 800179a: 2b03 cmp r3, #3 + 800179c: d017 beq.n 80017ce { /* Check the Pull parameter */ assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); temp = GPIOx->PUPDR; - 80043f6: 687b ldr r3, [r7, #4] - 80043f8: 68db ldr r3, [r3, #12] - 80043fa: 613b str r3, [r7, #16] + 800179e: 687b ldr r3, [r7, #4] + 80017a0: 68db ldr r3, [r3, #12] + 80017a2: 613b str r3, [r7, #16] temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U)); - 80043fc: 697b ldr r3, [r7, #20] - 80043fe: 005b lsls r3, r3, #1 - 8004400: 2203 movs r2, #3 - 8004402: fa02 f303 lsl.w r3, r2, r3 - 8004406: 43db mvns r3, r3 - 8004408: 693a ldr r2, [r7, #16] - 800440a: 4013 ands r3, r2 - 800440c: 613b str r3, [r7, #16] + 80017a4: 697b ldr r3, [r7, #20] + 80017a6: 005b lsls r3, r3, #1 + 80017a8: 2203 movs r2, #3 + 80017aa: fa02 f303 lsl.w r3, r2, r3 + 80017ae: 43db mvns r3, r3 + 80017b0: 693a ldr r2, [r7, #16] + 80017b2: 4013 ands r3, r2 + 80017b4: 613b str r3, [r7, #16] temp |= ((GPIO_Init->Pull) << (position * 2U)); - 800440e: 683b ldr r3, [r7, #0] - 8004410: 689a ldr r2, [r3, #8] - 8004412: 697b ldr r3, [r7, #20] - 8004414: 005b lsls r3, r3, #1 - 8004416: fa02 f303 lsl.w r3, r2, r3 - 800441a: 693a ldr r2, [r7, #16] - 800441c: 4313 orrs r3, r2 - 800441e: 613b str r3, [r7, #16] + 80017b6: 683b ldr r3, [r7, #0] + 80017b8: 689a ldr r2, [r3, #8] + 80017ba: 697b ldr r3, [r7, #20] + 80017bc: 005b lsls r3, r3, #1 + 80017be: fa02 f303 lsl.w r3, r2, r3 + 80017c2: 693a ldr r2, [r7, #16] + 80017c4: 4313 orrs r3, r2 + 80017c6: 613b str r3, [r7, #16] GPIOx->PUPDR = temp; - 8004420: 687b ldr r3, [r7, #4] - 8004422: 693a ldr r2, [r7, #16] - 8004424: 60da str r2, [r3, #12] + 80017c8: 687b ldr r3, [r7, #4] + 80017ca: 693a ldr r2, [r7, #16] + 80017cc: 60da str r2, [r3, #12] } /* In case of Alternate function mode selection */ if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) - 8004426: 683b ldr r3, [r7, #0] - 8004428: 685b ldr r3, [r3, #4] - 800442a: f003 0303 and.w r3, r3, #3 - 800442e: 2b02 cmp r3, #2 - 8004430: d123 bne.n 800447a + 80017ce: 683b ldr r3, [r7, #0] + 80017d0: 685b ldr r3, [r3, #4] + 80017d2: f003 0303 and.w r3, r3, #3 + 80017d6: 2b02 cmp r3, #2 + 80017d8: d123 bne.n 8001822 /* Check the Alternate function parameters */ assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); /* Configure Alternate function mapped with the current IO */ temp = GPIOx->AFR[position >> 3u]; - 8004432: 697b ldr r3, [r7, #20] - 8004434: 08da lsrs r2, r3, #3 - 8004436: 687b ldr r3, [r7, #4] - 8004438: 3208 adds r2, #8 - 800443a: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800443e: 613b str r3, [r7, #16] + 80017da: 697b ldr r3, [r7, #20] + 80017dc: 08da lsrs r2, r3, #3 + 80017de: 687b ldr r3, [r7, #4] + 80017e0: 3208 adds r2, #8 + 80017e2: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 80017e6: 613b str r3, [r7, #16] temp &= ~(0xFu << ((position & 0x07u) * 4u)); - 8004440: 697b ldr r3, [r7, #20] - 8004442: f003 0307 and.w r3, r3, #7 - 8004446: 009b lsls r3, r3, #2 - 8004448: 220f movs r2, #15 - 800444a: fa02 f303 lsl.w r3, r2, r3 - 800444e: 43db mvns r3, r3 - 8004450: 693a ldr r2, [r7, #16] - 8004452: 4013 ands r3, r2 - 8004454: 613b str r3, [r7, #16] + 80017e8: 697b ldr r3, [r7, #20] + 80017ea: f003 0307 and.w r3, r3, #7 + 80017ee: 009b lsls r3, r3, #2 + 80017f0: 220f movs r2, #15 + 80017f2: fa02 f303 lsl.w r3, r2, r3 + 80017f6: 43db mvns r3, r3 + 80017f8: 693a ldr r2, [r7, #16] + 80017fa: 4013 ands r3, r2 + 80017fc: 613b str r3, [r7, #16] temp |= ((GPIO_Init->Alternate) << ((position & 0x07u) * 4u)); - 8004456: 683b ldr r3, [r7, #0] - 8004458: 691a ldr r2, [r3, #16] - 800445a: 697b ldr r3, [r7, #20] - 800445c: f003 0307 and.w r3, r3, #7 - 8004460: 009b lsls r3, r3, #2 - 8004462: fa02 f303 lsl.w r3, r2, r3 - 8004466: 693a ldr r2, [r7, #16] - 8004468: 4313 orrs r3, r2 - 800446a: 613b str r3, [r7, #16] + 80017fe: 683b ldr r3, [r7, #0] + 8001800: 691a ldr r2, [r3, #16] + 8001802: 697b ldr r3, [r7, #20] + 8001804: f003 0307 and.w r3, r3, #7 + 8001808: 009b lsls r3, r3, #2 + 800180a: fa02 f303 lsl.w r3, r2, r3 + 800180e: 693a ldr r2, [r7, #16] + 8001810: 4313 orrs r3, r2 + 8001812: 613b str r3, [r7, #16] GPIOx->AFR[position >> 3u] = temp; - 800446c: 697b ldr r3, [r7, #20] - 800446e: 08da lsrs r2, r3, #3 - 8004470: 687b ldr r3, [r7, #4] - 8004472: 3208 adds r2, #8 - 8004474: 6939 ldr r1, [r7, #16] - 8004476: f843 1022 str.w r1, [r3, r2, lsl #2] + 8001814: 697b ldr r3, [r7, #20] + 8001816: 08da lsrs r2, r3, #3 + 8001818: 687b ldr r3, [r7, #4] + 800181a: 3208 adds r2, #8 + 800181c: 6939 ldr r1, [r7, #16] + 800181e: f843 1022 str.w r1, [r3, r2, lsl #2] } /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ temp = GPIOx->MODER; - 800447a: 687b ldr r3, [r7, #4] - 800447c: 681b ldr r3, [r3, #0] - 800447e: 613b str r3, [r7, #16] + 8001822: 687b ldr r3, [r7, #4] + 8001824: 681b ldr r3, [r3, #0] + 8001826: 613b str r3, [r7, #16] temp &= ~(GPIO_MODER_MODE0 << (position * 2u)); - 8004480: 697b ldr r3, [r7, #20] - 8004482: 005b lsls r3, r3, #1 - 8004484: 2203 movs r2, #3 - 8004486: fa02 f303 lsl.w r3, r2, r3 - 800448a: 43db mvns r3, r3 - 800448c: 693a ldr r2, [r7, #16] - 800448e: 4013 ands r3, r2 - 8004490: 613b str r3, [r7, #16] + 8001828: 697b ldr r3, [r7, #20] + 800182a: 005b lsls r3, r3, #1 + 800182c: 2203 movs r2, #3 + 800182e: fa02 f303 lsl.w r3, r2, r3 + 8001832: 43db mvns r3, r3 + 8001834: 693a ldr r2, [r7, #16] + 8001836: 4013 ands r3, r2 + 8001838: 613b str r3, [r7, #16] temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u)); - 8004492: 683b ldr r3, [r7, #0] - 8004494: 685b ldr r3, [r3, #4] - 8004496: f003 0203 and.w r2, r3, #3 - 800449a: 697b ldr r3, [r7, #20] - 800449c: 005b lsls r3, r3, #1 - 800449e: fa02 f303 lsl.w r3, r2, r3 - 80044a2: 693a ldr r2, [r7, #16] - 80044a4: 4313 orrs r3, r2 - 80044a6: 613b str r3, [r7, #16] + 800183a: 683b ldr r3, [r7, #0] + 800183c: 685b ldr r3, [r3, #4] + 800183e: f003 0203 and.w r2, r3, #3 + 8001842: 697b ldr r3, [r7, #20] + 8001844: 005b lsls r3, r3, #1 + 8001846: fa02 f303 lsl.w r3, r2, r3 + 800184a: 693a ldr r2, [r7, #16] + 800184c: 4313 orrs r3, r2 + 800184e: 613b str r3, [r7, #16] GPIOx->MODER = temp; - 80044a8: 687b ldr r3, [r7, #4] - 80044aa: 693a ldr r2, [r7, #16] - 80044ac: 601a str r2, [r3, #0] + 8001850: 687b ldr r3, [r7, #4] + 8001852: 693a ldr r2, [r7, #16] + 8001854: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if ((GPIO_Init->Mode & EXTI_MODE) != 0x00u) - 80044ae: 683b ldr r3, [r7, #0] - 80044b0: 685b ldr r3, [r3, #4] - 80044b2: f403 3340 and.w r3, r3, #196608 @ 0x30000 - 80044b6: 2b00 cmp r3, #0 - 80044b8: f000 80a0 beq.w 80045fc + 8001856: 683b ldr r3, [r7, #0] + 8001858: 685b ldr r3, [r3, #4] + 800185a: f403 3340 and.w r3, r3, #196608 @ 0x30000 + 800185e: 2b00 cmp r3, #0 + 8001860: f000 80a0 beq.w 80019a4 { /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 80044bc: 4b58 ldr r3, [pc, #352] @ (8004620 ) - 80044be: 6e1b ldr r3, [r3, #96] @ 0x60 - 80044c0: 4a57 ldr r2, [pc, #348] @ (8004620 ) - 80044c2: f043 0301 orr.w r3, r3, #1 - 80044c6: 6613 str r3, [r2, #96] @ 0x60 - 80044c8: 4b55 ldr r3, [pc, #340] @ (8004620 ) - 80044ca: 6e1b ldr r3, [r3, #96] @ 0x60 - 80044cc: f003 0301 and.w r3, r3, #1 - 80044d0: 60bb str r3, [r7, #8] - 80044d2: 68bb ldr r3, [r7, #8] + 8001864: 4b58 ldr r3, [pc, #352] @ (80019c8 ) + 8001866: 6e1b ldr r3, [r3, #96] @ 0x60 + 8001868: 4a57 ldr r2, [pc, #348] @ (80019c8 ) + 800186a: f043 0301 orr.w r3, r3, #1 + 800186e: 6613 str r3, [r2, #96] @ 0x60 + 8001870: 4b55 ldr r3, [pc, #340] @ (80019c8 ) + 8001872: 6e1b ldr r3, [r3, #96] @ 0x60 + 8001874: f003 0301 and.w r3, r3, #1 + 8001878: 60bb str r3, [r7, #8] + 800187a: 68bb ldr r3, [r7, #8] temp = SYSCFG->EXTICR[position >> 2u]; - 80044d4: 4a53 ldr r2, [pc, #332] @ (8004624 ) - 80044d6: 697b ldr r3, [r7, #20] - 80044d8: 089b lsrs r3, r3, #2 - 80044da: 3302 adds r3, #2 - 80044dc: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 80044e0: 613b str r3, [r7, #16] + 800187c: 4a53 ldr r2, [pc, #332] @ (80019cc ) + 800187e: 697b ldr r3, [r7, #20] + 8001880: 089b lsrs r3, r3, #2 + 8001882: 3302 adds r3, #2 + 8001884: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8001888: 613b str r3, [r7, #16] temp &= ~(0x0FuL << (4u * (position & 0x03u))); - 80044e2: 697b ldr r3, [r7, #20] - 80044e4: f003 0303 and.w r3, r3, #3 - 80044e8: 009b lsls r3, r3, #2 - 80044ea: 220f movs r2, #15 - 80044ec: fa02 f303 lsl.w r3, r2, r3 - 80044f0: 43db mvns r3, r3 - 80044f2: 693a ldr r2, [r7, #16] - 80044f4: 4013 ands r3, r2 - 80044f6: 613b str r3, [r7, #16] + 800188a: 697b ldr r3, [r7, #20] + 800188c: f003 0303 and.w r3, r3, #3 + 8001890: 009b lsls r3, r3, #2 + 8001892: 220f movs r2, #15 + 8001894: fa02 f303 lsl.w r3, r2, r3 + 8001898: 43db mvns r3, r3 + 800189a: 693a ldr r2, [r7, #16] + 800189c: 4013 ands r3, r2 + 800189e: 613b str r3, [r7, #16] temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))); - 80044f8: 687b ldr r3, [r7, #4] - 80044fa: f1b3 4f90 cmp.w r3, #1207959552 @ 0x48000000 - 80044fe: d019 beq.n 8004534 - 8004500: 687b ldr r3, [r7, #4] - 8004502: 4a49 ldr r2, [pc, #292] @ (8004628 ) - 8004504: 4293 cmp r3, r2 - 8004506: d013 beq.n 8004530 - 8004508: 687b ldr r3, [r7, #4] - 800450a: 4a48 ldr r2, [pc, #288] @ (800462c ) - 800450c: 4293 cmp r3, r2 - 800450e: d00d beq.n 800452c - 8004510: 687b ldr r3, [r7, #4] - 8004512: 4a47 ldr r2, [pc, #284] @ (8004630 ) - 8004514: 4293 cmp r3, r2 - 8004516: d007 beq.n 8004528 - 8004518: 687b ldr r3, [r7, #4] - 800451a: 4a46 ldr r2, [pc, #280] @ (8004634 ) - 800451c: 4293 cmp r3, r2 - 800451e: d101 bne.n 8004524 - 8004520: 2304 movs r3, #4 - 8004522: e008 b.n 8004536 - 8004524: 2307 movs r3, #7 - 8004526: e006 b.n 8004536 - 8004528: 2303 movs r3, #3 - 800452a: e004 b.n 8004536 - 800452c: 2302 movs r3, #2 - 800452e: e002 b.n 8004536 - 8004530: 2301 movs r3, #1 - 8004532: e000 b.n 8004536 - 8004534: 2300 movs r3, #0 - 8004536: 697a ldr r2, [r7, #20] - 8004538: f002 0203 and.w r2, r2, #3 - 800453c: 0092 lsls r2, r2, #2 - 800453e: 4093 lsls r3, r2 - 8004540: 693a ldr r2, [r7, #16] - 8004542: 4313 orrs r3, r2 - 8004544: 613b str r3, [r7, #16] + 80018a0: 687b ldr r3, [r7, #4] + 80018a2: f1b3 4f90 cmp.w r3, #1207959552 @ 0x48000000 + 80018a6: d019 beq.n 80018dc + 80018a8: 687b ldr r3, [r7, #4] + 80018aa: 4a49 ldr r2, [pc, #292] @ (80019d0 ) + 80018ac: 4293 cmp r3, r2 + 80018ae: d013 beq.n 80018d8 + 80018b0: 687b ldr r3, [r7, #4] + 80018b2: 4a48 ldr r2, [pc, #288] @ (80019d4 ) + 80018b4: 4293 cmp r3, r2 + 80018b6: d00d beq.n 80018d4 + 80018b8: 687b ldr r3, [r7, #4] + 80018ba: 4a47 ldr r2, [pc, #284] @ (80019d8 ) + 80018bc: 4293 cmp r3, r2 + 80018be: d007 beq.n 80018d0 + 80018c0: 687b ldr r3, [r7, #4] + 80018c2: 4a46 ldr r2, [pc, #280] @ (80019dc ) + 80018c4: 4293 cmp r3, r2 + 80018c6: d101 bne.n 80018cc + 80018c8: 2304 movs r3, #4 + 80018ca: e008 b.n 80018de + 80018cc: 2307 movs r3, #7 + 80018ce: e006 b.n 80018de + 80018d0: 2303 movs r3, #3 + 80018d2: e004 b.n 80018de + 80018d4: 2302 movs r3, #2 + 80018d6: e002 b.n 80018de + 80018d8: 2301 movs r3, #1 + 80018da: e000 b.n 80018de + 80018dc: 2300 movs r3, #0 + 80018de: 697a ldr r2, [r7, #20] + 80018e0: f002 0203 and.w r2, r2, #3 + 80018e4: 0092 lsls r2, r2, #2 + 80018e6: 4093 lsls r3, r2 + 80018e8: 693a ldr r2, [r7, #16] + 80018ea: 4313 orrs r3, r2 + 80018ec: 613b str r3, [r7, #16] SYSCFG->EXTICR[position >> 2u] = temp; - 8004546: 4937 ldr r1, [pc, #220] @ (8004624 ) - 8004548: 697b ldr r3, [r7, #20] - 800454a: 089b lsrs r3, r3, #2 - 800454c: 3302 adds r3, #2 - 800454e: 693a ldr r2, [r7, #16] - 8004550: f841 2023 str.w r2, [r1, r3, lsl #2] + 80018ee: 4937 ldr r1, [pc, #220] @ (80019cc ) + 80018f0: 697b ldr r3, [r7, #20] + 80018f2: 089b lsrs r3, r3, #2 + 80018f4: 3302 adds r3, #2 + 80018f6: 693a ldr r2, [r7, #16] + 80018f8: f841 2023 str.w r2, [r1, r3, lsl #2] /* Clear Rising Falling edge configuration */ temp = EXTI->RTSR1; - 8004554: 4b38 ldr r3, [pc, #224] @ (8004638 ) - 8004556: 689b ldr r3, [r3, #8] - 8004558: 613b str r3, [r7, #16] + 80018fc: 4b38 ldr r3, [pc, #224] @ (80019e0 ) + 80018fe: 689b ldr r3, [r3, #8] + 8001900: 613b str r3, [r7, #16] temp &= ~(iocurrent); - 800455a: 68fb ldr r3, [r7, #12] - 800455c: 43db mvns r3, r3 - 800455e: 693a ldr r2, [r7, #16] - 8004560: 4013 ands r3, r2 - 8004562: 613b str r3, [r7, #16] + 8001902: 68fb ldr r3, [r7, #12] + 8001904: 43db mvns r3, r3 + 8001906: 693a ldr r2, [r7, #16] + 8001908: 4013 ands r3, r2 + 800190a: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u) - 8004564: 683b ldr r3, [r7, #0] - 8004566: 685b ldr r3, [r3, #4] - 8004568: f403 1380 and.w r3, r3, #1048576 @ 0x100000 - 800456c: 2b00 cmp r3, #0 - 800456e: d003 beq.n 8004578 + 800190c: 683b ldr r3, [r7, #0] + 800190e: 685b ldr r3, [r3, #4] + 8001910: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 8001914: 2b00 cmp r3, #0 + 8001916: d003 beq.n 8001920 { temp |= iocurrent; - 8004570: 693a ldr r2, [r7, #16] - 8004572: 68fb ldr r3, [r7, #12] - 8004574: 4313 orrs r3, r2 - 8004576: 613b str r3, [r7, #16] + 8001918: 693a ldr r2, [r7, #16] + 800191a: 68fb ldr r3, [r7, #12] + 800191c: 4313 orrs r3, r2 + 800191e: 613b str r3, [r7, #16] } EXTI->RTSR1 = temp; - 8004578: 4a2f ldr r2, [pc, #188] @ (8004638 ) - 800457a: 693b ldr r3, [r7, #16] - 800457c: 6093 str r3, [r2, #8] + 8001920: 4a2f ldr r2, [pc, #188] @ (80019e0 ) + 8001922: 693b ldr r3, [r7, #16] + 8001924: 6093 str r3, [r2, #8] temp = EXTI->FTSR1; - 800457e: 4b2e ldr r3, [pc, #184] @ (8004638 ) - 8004580: 68db ldr r3, [r3, #12] - 8004582: 613b str r3, [r7, #16] + 8001926: 4b2e ldr r3, [pc, #184] @ (80019e0 ) + 8001928: 68db ldr r3, [r3, #12] + 800192a: 613b str r3, [r7, #16] temp &= ~(iocurrent); - 8004584: 68fb ldr r3, [r7, #12] - 8004586: 43db mvns r3, r3 - 8004588: 693a ldr r2, [r7, #16] - 800458a: 4013 ands r3, r2 - 800458c: 613b str r3, [r7, #16] + 800192c: 68fb ldr r3, [r7, #12] + 800192e: 43db mvns r3, r3 + 8001930: 693a ldr r2, [r7, #16] + 8001932: 4013 ands r3, r2 + 8001934: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u) - 800458e: 683b ldr r3, [r7, #0] - 8004590: 685b ldr r3, [r3, #4] - 8004592: f403 1300 and.w r3, r3, #2097152 @ 0x200000 - 8004596: 2b00 cmp r3, #0 - 8004598: d003 beq.n 80045a2 + 8001936: 683b ldr r3, [r7, #0] + 8001938: 685b ldr r3, [r3, #4] + 800193a: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 800193e: 2b00 cmp r3, #0 + 8001940: d003 beq.n 800194a { temp |= iocurrent; - 800459a: 693a ldr r2, [r7, #16] - 800459c: 68fb ldr r3, [r7, #12] - 800459e: 4313 orrs r3, r2 - 80045a0: 613b str r3, [r7, #16] + 8001942: 693a ldr r2, [r7, #16] + 8001944: 68fb ldr r3, [r7, #12] + 8001946: 4313 orrs r3, r2 + 8001948: 613b str r3, [r7, #16] } EXTI->FTSR1 = temp; - 80045a2: 4a25 ldr r2, [pc, #148] @ (8004638 ) - 80045a4: 693b ldr r3, [r7, #16] - 80045a6: 60d3 str r3, [r2, #12] + 800194a: 4a25 ldr r2, [pc, #148] @ (80019e0 ) + 800194c: 693b ldr r3, [r7, #16] + 800194e: 60d3 str r3, [r2, #12] /* Clear EXTI line configuration */ temp = EXTI->EMR1; - 80045a8: 4b23 ldr r3, [pc, #140] @ (8004638 ) - 80045aa: 685b ldr r3, [r3, #4] - 80045ac: 613b str r3, [r7, #16] + 8001950: 4b23 ldr r3, [pc, #140] @ (80019e0 ) + 8001952: 685b ldr r3, [r3, #4] + 8001954: 613b str r3, [r7, #16] temp &= ~(iocurrent); - 80045ae: 68fb ldr r3, [r7, #12] - 80045b0: 43db mvns r3, r3 - 80045b2: 693a ldr r2, [r7, #16] - 80045b4: 4013 ands r3, r2 - 80045b6: 613b str r3, [r7, #16] + 8001956: 68fb ldr r3, [r7, #12] + 8001958: 43db mvns r3, r3 + 800195a: 693a ldr r2, [r7, #16] + 800195c: 4013 ands r3, r2 + 800195e: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & EXTI_EVT) != 0x00u) - 80045b8: 683b ldr r3, [r7, #0] - 80045ba: 685b ldr r3, [r3, #4] - 80045bc: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 80045c0: 2b00 cmp r3, #0 - 80045c2: d003 beq.n 80045cc + 8001960: 683b ldr r3, [r7, #0] + 8001962: 685b ldr r3, [r3, #4] + 8001964: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8001968: 2b00 cmp r3, #0 + 800196a: d003 beq.n 8001974 { temp |= iocurrent; - 80045c4: 693a ldr r2, [r7, #16] - 80045c6: 68fb ldr r3, [r7, #12] - 80045c8: 4313 orrs r3, r2 - 80045ca: 613b str r3, [r7, #16] + 800196c: 693a ldr r2, [r7, #16] + 800196e: 68fb ldr r3, [r7, #12] + 8001970: 4313 orrs r3, r2 + 8001972: 613b str r3, [r7, #16] } EXTI->EMR1 = temp; - 80045cc: 4a1a ldr r2, [pc, #104] @ (8004638 ) - 80045ce: 693b ldr r3, [r7, #16] - 80045d0: 6053 str r3, [r2, #4] + 8001974: 4a1a ldr r2, [pc, #104] @ (80019e0 ) + 8001976: 693b ldr r3, [r7, #16] + 8001978: 6053 str r3, [r2, #4] temp = EXTI->IMR1; - 80045d2: 4b19 ldr r3, [pc, #100] @ (8004638 ) - 80045d4: 681b ldr r3, [r3, #0] - 80045d6: 613b str r3, [r7, #16] + 800197a: 4b19 ldr r3, [pc, #100] @ (80019e0 ) + 800197c: 681b ldr r3, [r3, #0] + 800197e: 613b str r3, [r7, #16] temp &= ~(iocurrent); - 80045d8: 68fb ldr r3, [r7, #12] - 80045da: 43db mvns r3, r3 - 80045dc: 693a ldr r2, [r7, #16] - 80045de: 4013 ands r3, r2 - 80045e0: 613b str r3, [r7, #16] + 8001980: 68fb ldr r3, [r7, #12] + 8001982: 43db mvns r3, r3 + 8001984: 693a ldr r2, [r7, #16] + 8001986: 4013 ands r3, r2 + 8001988: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & EXTI_IT) != 0x00u) - 80045e2: 683b ldr r3, [r7, #0] - 80045e4: 685b ldr r3, [r3, #4] - 80045e6: f403 3380 and.w r3, r3, #65536 @ 0x10000 - 80045ea: 2b00 cmp r3, #0 - 80045ec: d003 beq.n 80045f6 + 800198a: 683b ldr r3, [r7, #0] + 800198c: 685b ldr r3, [r3, #4] + 800198e: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 8001992: 2b00 cmp r3, #0 + 8001994: d003 beq.n 800199e { temp |= iocurrent; - 80045ee: 693a ldr r2, [r7, #16] - 80045f0: 68fb ldr r3, [r7, #12] - 80045f2: 4313 orrs r3, r2 - 80045f4: 613b str r3, [r7, #16] + 8001996: 693a ldr r2, [r7, #16] + 8001998: 68fb ldr r3, [r7, #12] + 800199a: 4313 orrs r3, r2 + 800199c: 613b str r3, [r7, #16] } EXTI->IMR1 = temp; - 80045f6: 4a10 ldr r2, [pc, #64] @ (8004638 ) - 80045f8: 693b ldr r3, [r7, #16] - 80045fa: 6013 str r3, [r2, #0] + 800199e: 4a10 ldr r2, [pc, #64] @ (80019e0 ) + 80019a0: 693b ldr r3, [r7, #16] + 80019a2: 6013 str r3, [r2, #0] } } position++; - 80045fc: 697b ldr r3, [r7, #20] - 80045fe: 3301 adds r3, #1 - 8004600: 617b str r3, [r7, #20] + 80019a4: 697b ldr r3, [r7, #20] + 80019a6: 3301 adds r3, #1 + 80019a8: 617b str r3, [r7, #20] while (((GPIO_Init->Pin) >> position) != 0x00u) - 8004602: 683b ldr r3, [r7, #0] - 8004604: 681a ldr r2, [r3, #0] - 8004606: 697b ldr r3, [r7, #20] - 8004608: fa22 f303 lsr.w r3, r2, r3 - 800460c: 2b00 cmp r3, #0 - 800460e: f47f aea3 bne.w 8004358 + 80019aa: 683b ldr r3, [r7, #0] + 80019ac: 681a ldr r2, [r3, #0] + 80019ae: 697b ldr r3, [r7, #20] + 80019b0: fa22 f303 lsr.w r3, r2, r3 + 80019b4: 2b00 cmp r3, #0 + 80019b6: f47f aea3 bne.w 8001700 } } - 8004612: bf00 nop - 8004614: bf00 nop - 8004616: 371c adds r7, #28 - 8004618: 46bd mov sp, r7 - 800461a: f85d 7b04 ldr.w r7, [sp], #4 - 800461e: 4770 bx lr - 8004620: 40021000 .word 0x40021000 - 8004624: 40010000 .word 0x40010000 - 8004628: 48000400 .word 0x48000400 - 800462c: 48000800 .word 0x48000800 - 8004630: 48000c00 .word 0x48000c00 - 8004634: 48001000 .word 0x48001000 - 8004638: 40010400 .word 0x40010400 + 80019ba: bf00 nop + 80019bc: bf00 nop + 80019be: 371c adds r7, #28 + 80019c0: 46bd mov sp, r7 + 80019c2: f85d 7b04 ldr.w r7, [sp], #4 + 80019c6: 4770 bx lr + 80019c8: 40021000 .word 0x40021000 + 80019cc: 40010000 .word 0x40010000 + 80019d0: 48000400 .word 0x48000400 + 80019d4: 48000800 .word 0x48000800 + 80019d8: 48000c00 .word 0x48000c00 + 80019dc: 48001000 .word 0x48001000 + 80019e0: 40010400 .word 0x40010400 -0800463c : +080019e4 : * @arg GPIO_PIN_RESET: to clear the port pin * @arg GPIO_PIN_SET: to set the port pin * @retval None */ void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { - 800463c: b480 push {r7} - 800463e: b083 sub sp, #12 - 8004640: af00 add r7, sp, #0 - 8004642: 6078 str r0, [r7, #4] - 8004644: 460b mov r3, r1 - 8004646: 807b strh r3, [r7, #2] - 8004648: 4613 mov r3, r2 - 800464a: 707b strb r3, [r7, #1] + 80019e4: b480 push {r7} + 80019e6: b083 sub sp, #12 + 80019e8: af00 add r7, sp, #0 + 80019ea: 6078 str r0, [r7, #4] + 80019ec: 460b mov r3, r1 + 80019ee: 807b strh r3, [r7, #2] + 80019f0: 4613 mov r3, r2 + 80019f2: 707b strb r3, [r7, #1] /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if(PinState != GPIO_PIN_RESET) - 800464c: 787b ldrb r3, [r7, #1] - 800464e: 2b00 cmp r3, #0 - 8004650: d003 beq.n 800465a + 80019f4: 787b ldrb r3, [r7, #1] + 80019f6: 2b00 cmp r3, #0 + 80019f8: d003 beq.n 8001a02 { GPIOx->BSRR = (uint32_t)GPIO_Pin; - 8004652: 887a ldrh r2, [r7, #2] - 8004654: 687b ldr r3, [r7, #4] - 8004656: 619a str r2, [r3, #24] + 80019fa: 887a ldrh r2, [r7, #2] + 80019fc: 687b ldr r3, [r7, #4] + 80019fe: 619a str r2, [r3, #24] } else { GPIOx->BRR = (uint32_t)GPIO_Pin; } } - 8004658: e002 b.n 8004660 + 8001a00: e002 b.n 8001a08 GPIOx->BRR = (uint32_t)GPIO_Pin; - 800465a: 887a ldrh r2, [r7, #2] - 800465c: 687b ldr r3, [r7, #4] - 800465e: 629a str r2, [r3, #40] @ 0x28 + 8001a02: 887a ldrh r2, [r7, #2] + 8001a04: 687b ldr r3, [r7, #4] + 8001a06: 629a str r2, [r3, #40] @ 0x28 } - 8004660: bf00 nop - 8004662: 370c adds r7, #12 - 8004664: 46bd mov sp, r7 - 8004666: f85d 7b04 ldr.w r7, [sp], #4 - 800466a: 4770 bx lr + 8001a08: bf00 nop + 8001a0a: 370c adds r7, #12 + 8001a0c: 46bd mov sp, r7 + 8001a0e: f85d 7b04 ldr.w r7, [sp], #4 + 8001a12: 4770 bx lr -0800466c : - * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - * the configuration information for the specified I2C. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) -{ - 800466c: b580 push {r7, lr} - 800466e: b082 sub sp, #8 - 8004670: af00 add r7, sp, #0 - 8004672: 6078 str r0, [r7, #4] - /* Check the I2C handle allocation */ - if (hi2c == NULL) - 8004674: 687b ldr r3, [r7, #4] - 8004676: 2b00 cmp r3, #0 - 8004678: d101 bne.n 800467e - { - return HAL_ERROR; - 800467a: 2301 movs r3, #1 - 800467c: e08d b.n 800479a - assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); - assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); - assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); - assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); - - if (hi2c->State == HAL_I2C_STATE_RESET) - 800467e: 687b ldr r3, [r7, #4] - 8004680: f893 3041 ldrb.w r3, [r3, #65] @ 0x41 - 8004684: b2db uxtb r3, r3 - 8004686: 2b00 cmp r3, #0 - 8004688: d106 bne.n 8004698 - { - /* Allocate lock resource and initialize it */ - hi2c->Lock = HAL_UNLOCKED; - 800468a: 687b ldr r3, [r7, #4] - 800468c: 2200 movs r2, #0 - 800468e: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ - hi2c->MspInitCallback(hi2c); -#else - /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ - HAL_I2C_MspInit(hi2c); - 8004692: 6878 ldr r0, [r7, #4] - 8004694: f7ff fae6 bl 8003c64 -#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - } - - hi2c->State = HAL_I2C_STATE_BUSY; - 8004698: 687b ldr r3, [r7, #4] - 800469a: 2224 movs r2, #36 @ 0x24 - 800469c: f883 2041 strb.w r2, [r3, #65] @ 0x41 - - /* Disable the selected I2C peripheral */ - __HAL_I2C_DISABLE(hi2c); - 80046a0: 687b ldr r3, [r7, #4] - 80046a2: 681b ldr r3, [r3, #0] - 80046a4: 681a ldr r2, [r3, #0] - 80046a6: 687b ldr r3, [r7, #4] - 80046a8: 681b ldr r3, [r3, #0] - 80046aa: f022 0201 bic.w r2, r2, #1 - 80046ae: 601a str r2, [r3, #0] - - /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ - /* Configure I2Cx: Frequency range */ - hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; - 80046b0: 687b ldr r3, [r7, #4] - 80046b2: 685a ldr r2, [r3, #4] - 80046b4: 687b ldr r3, [r7, #4] - 80046b6: 681b ldr r3, [r3, #0] - 80046b8: f022 6270 bic.w r2, r2, #251658240 @ 0xf000000 - 80046bc: 611a str r2, [r3, #16] - - /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ - /* Disable Own Address1 before set the Own Address1 configuration */ - hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; - 80046be: 687b ldr r3, [r7, #4] - 80046c0: 681b ldr r3, [r3, #0] - 80046c2: 689a ldr r2, [r3, #8] - 80046c4: 687b ldr r3, [r7, #4] - 80046c6: 681b ldr r3, [r3, #0] - 80046c8: f422 4200 bic.w r2, r2, #32768 @ 0x8000 - 80046cc: 609a str r2, [r3, #8] - - /* Configure I2Cx: Own Address1 and ack own address1 mode */ - if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) - 80046ce: 687b ldr r3, [r7, #4] - 80046d0: 68db ldr r3, [r3, #12] - 80046d2: 2b01 cmp r3, #1 - 80046d4: d107 bne.n 80046e6 - { - hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); - 80046d6: 687b ldr r3, [r7, #4] - 80046d8: 689a ldr r2, [r3, #8] - 80046da: 687b ldr r3, [r7, #4] - 80046dc: 681b ldr r3, [r3, #0] - 80046de: f442 4200 orr.w r2, r2, #32768 @ 0x8000 - 80046e2: 609a str r2, [r3, #8] - 80046e4: e006 b.n 80046f4 - } - else /* I2C_ADDRESSINGMODE_10BIT */ - { - hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); - 80046e6: 687b ldr r3, [r7, #4] - 80046e8: 689a ldr r2, [r3, #8] - 80046ea: 687b ldr r3, [r7, #4] - 80046ec: 681b ldr r3, [r3, #0] - 80046ee: f442 4204 orr.w r2, r2, #33792 @ 0x8400 - 80046f2: 609a str r2, [r3, #8] - } - - /*---------------------------- I2Cx CR2 Configuration ----------------------*/ - /* Configure I2Cx: Addressing Master mode */ - if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) - 80046f4: 687b ldr r3, [r7, #4] - 80046f6: 68db ldr r3, [r3, #12] - 80046f8: 2b02 cmp r3, #2 - 80046fa: d108 bne.n 800470e - { - SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); - 80046fc: 687b ldr r3, [r7, #4] - 80046fe: 681b ldr r3, [r3, #0] - 8004700: 685a ldr r2, [r3, #4] - 8004702: 687b ldr r3, [r7, #4] - 8004704: 681b ldr r3, [r3, #0] - 8004706: f442 6200 orr.w r2, r2, #2048 @ 0x800 - 800470a: 605a str r2, [r3, #4] - 800470c: e007 b.n 800471e - } - else - { - /* Clear the I2C ADD10 bit */ - CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); - 800470e: 687b ldr r3, [r7, #4] - 8004710: 681b ldr r3, [r3, #0] - 8004712: 685a ldr r2, [r3, #4] - 8004714: 687b ldr r3, [r7, #4] - 8004716: 681b ldr r3, [r3, #0] - 8004718: f422 6200 bic.w r2, r2, #2048 @ 0x800 - 800471c: 605a str r2, [r3, #4] - } - /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ - hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); - 800471e: 687b ldr r3, [r7, #4] - 8004720: 681b ldr r3, [r3, #0] - 8004722: 685b ldr r3, [r3, #4] - 8004724: 687a ldr r2, [r7, #4] - 8004726: 6812 ldr r2, [r2, #0] - 8004728: f043 7300 orr.w r3, r3, #33554432 @ 0x2000000 - 800472c: f443 4300 orr.w r3, r3, #32768 @ 0x8000 - 8004730: 6053 str r3, [r2, #4] - - /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ - /* Disable Own Address2 before set the Own Address2 configuration */ - hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; - 8004732: 687b ldr r3, [r7, #4] - 8004734: 681b ldr r3, [r3, #0] - 8004736: 68da ldr r2, [r3, #12] - 8004738: 687b ldr r3, [r7, #4] - 800473a: 681b ldr r3, [r3, #0] - 800473c: f422 4200 bic.w r2, r2, #32768 @ 0x8000 - 8004740: 60da str r2, [r3, #12] - - /* Configure I2Cx: Dual mode and Own Address2 */ - hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ - 8004742: 687b ldr r3, [r7, #4] - 8004744: 691a ldr r2, [r3, #16] - 8004746: 687b ldr r3, [r7, #4] - 8004748: 695b ldr r3, [r3, #20] - 800474a: ea42 0103 orr.w r1, r2, r3 - (hi2c->Init.OwnAddress2Masks << 8)); - 800474e: 687b ldr r3, [r7, #4] - 8004750: 699b ldr r3, [r3, #24] - 8004752: 021a lsls r2, r3, #8 - hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ - 8004754: 687b ldr r3, [r7, #4] - 8004756: 681b ldr r3, [r3, #0] - 8004758: 430a orrs r2, r1 - 800475a: 60da str r2, [r3, #12] - - /*---------------------------- I2Cx CR1 Configuration ----------------------*/ - /* Configure I2Cx: Generalcall and NoStretch mode */ - hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); - 800475c: 687b ldr r3, [r7, #4] - 800475e: 69d9 ldr r1, [r3, #28] - 8004760: 687b ldr r3, [r7, #4] - 8004762: 6a1a ldr r2, [r3, #32] - 8004764: 687b ldr r3, [r7, #4] - 8004766: 681b ldr r3, [r3, #0] - 8004768: 430a orrs r2, r1 - 800476a: 601a str r2, [r3, #0] - - /* Enable the selected I2C peripheral */ - __HAL_I2C_ENABLE(hi2c); - 800476c: 687b ldr r3, [r7, #4] - 800476e: 681b ldr r3, [r3, #0] - 8004770: 681a ldr r2, [r3, #0] - 8004772: 687b ldr r3, [r7, #4] - 8004774: 681b ldr r3, [r3, #0] - 8004776: f042 0201 orr.w r2, r2, #1 - 800477a: 601a str r2, [r3, #0] - - hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 800477c: 687b ldr r3, [r7, #4] - 800477e: 2200 movs r2, #0 - 8004780: 645a str r2, [r3, #68] @ 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 8004782: 687b ldr r3, [r7, #4] - 8004784: 2220 movs r2, #32 - 8004786: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->PreviousState = I2C_STATE_NONE; - 800478a: 687b ldr r3, [r7, #4] - 800478c: 2200 movs r2, #0 - 800478e: 631a str r2, [r3, #48] @ 0x30 - hi2c->Mode = HAL_I2C_MODE_NONE; - 8004790: 687b ldr r3, [r7, #4] - 8004792: 2200 movs r2, #0 - 8004794: f883 2042 strb.w r2, [r3, #66] @ 0x42 - - return HAL_OK; - 8004798: 2300 movs r3, #0 -} - 800479a: 4618 mov r0, r3 - 800479c: 3708 adds r7, #8 - 800479e: 46bd mov sp, r7 - 80047a0: bd80 pop {r7, pc} - ... - -080047a4 : - * @param Timeout Timeout duration - * @retval HAL status - */ -HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, - uint16_t Size, uint32_t Timeout) -{ - 80047a4: b580 push {r7, lr} - 80047a6: b088 sub sp, #32 - 80047a8: af02 add r7, sp, #8 - 80047aa: 60f8 str r0, [r7, #12] - 80047ac: 607a str r2, [r7, #4] - 80047ae: 461a mov r2, r3 - 80047b0: 460b mov r3, r1 - 80047b2: 817b strh r3, [r7, #10] - 80047b4: 4613 mov r3, r2 - 80047b6: 813b strh r3, [r7, #8] - uint32_t tickstart; - uint32_t xfermode; - - if (hi2c->State == HAL_I2C_STATE_READY) - 80047b8: 68fb ldr r3, [r7, #12] - 80047ba: f893 3041 ldrb.w r3, [r3, #65] @ 0x41 - 80047be: b2db uxtb r3, r3 - 80047c0: 2b20 cmp r3, #32 - 80047c2: f040 80fd bne.w 80049c0 - { - /* Process Locked */ - __HAL_LOCK(hi2c); - 80047c6: 68fb ldr r3, [r7, #12] - 80047c8: f893 3040 ldrb.w r3, [r3, #64] @ 0x40 - 80047cc: 2b01 cmp r3, #1 - 80047ce: d101 bne.n 80047d4 - 80047d0: 2302 movs r3, #2 - 80047d2: e0f6 b.n 80049c2 - 80047d4: 68fb ldr r3, [r7, #12] - 80047d6: 2201 movs r2, #1 - 80047d8: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - /* Init tickstart for timeout management*/ - tickstart = HAL_GetTick(); - 80047dc: f7ff fc9e bl 800411c - 80047e0: 6138 str r0, [r7, #16] - - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) - 80047e2: 693b ldr r3, [r7, #16] - 80047e4: 9300 str r3, [sp, #0] - 80047e6: 2319 movs r3, #25 - 80047e8: 2201 movs r2, #1 - 80047ea: f44f 4100 mov.w r1, #32768 @ 0x8000 - 80047ee: 68f8 ldr r0, [r7, #12] - 80047f0: f000 fbea bl 8004fc8 - 80047f4: 4603 mov r3, r0 - 80047f6: 2b00 cmp r3, #0 - 80047f8: d001 beq.n 80047fe - { - return HAL_ERROR; - 80047fa: 2301 movs r3, #1 - 80047fc: e0e1 b.n 80049c2 - } - - hi2c->State = HAL_I2C_STATE_BUSY_TX; - 80047fe: 68fb ldr r3, [r7, #12] - 8004800: 2221 movs r2, #33 @ 0x21 - 8004802: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_MASTER; - 8004806: 68fb ldr r3, [r7, #12] - 8004808: 2210 movs r2, #16 - 800480a: f883 2042 strb.w r2, [r3, #66] @ 0x42 - hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 800480e: 68fb ldr r3, [r7, #12] - 8004810: 2200 movs r2, #0 - 8004812: 645a str r2, [r3, #68] @ 0x44 - - /* Prepare transfer parameters */ - hi2c->pBuffPtr = pData; - 8004814: 68fb ldr r3, [r7, #12] - 8004816: 687a ldr r2, [r7, #4] - 8004818: 625a str r2, [r3, #36] @ 0x24 - hi2c->XferCount = Size; - 800481a: 68fb ldr r3, [r7, #12] - 800481c: 893a ldrh r2, [r7, #8] - 800481e: 855a strh r2, [r3, #42] @ 0x2a - hi2c->XferISR = NULL; - 8004820: 68fb ldr r3, [r7, #12] - 8004822: 2200 movs r2, #0 - 8004824: 635a str r2, [r3, #52] @ 0x34 - - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8004826: 68fb ldr r3, [r7, #12] - 8004828: 8d5b ldrh r3, [r3, #42] @ 0x2a - 800482a: b29b uxth r3, r3 - 800482c: 2bff cmp r3, #255 @ 0xff - 800482e: d906 bls.n 800483e - { - hi2c->XferSize = MAX_NBYTE_SIZE; - 8004830: 68fb ldr r3, [r7, #12] - 8004832: 22ff movs r2, #255 @ 0xff - 8004834: 851a strh r2, [r3, #40] @ 0x28 - xfermode = I2C_RELOAD_MODE; - 8004836: f04f 7380 mov.w r3, #16777216 @ 0x1000000 - 800483a: 617b str r3, [r7, #20] - 800483c: e007 b.n 800484e - } - else - { - hi2c->XferSize = hi2c->XferCount; - 800483e: 68fb ldr r3, [r7, #12] - 8004840: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004842: b29a uxth r2, r3 - 8004844: 68fb ldr r3, [r7, #12] - 8004846: 851a strh r2, [r3, #40] @ 0x28 - xfermode = I2C_AUTOEND_MODE; - 8004848: f04f 7300 mov.w r3, #33554432 @ 0x2000000 - 800484c: 617b str r3, [r7, #20] - } - - if (hi2c->XferSize > 0U) - 800484e: 68fb ldr r3, [r7, #12] - 8004850: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004852: 2b00 cmp r3, #0 - 8004854: d024 beq.n 80048a0 - { - /* Preload TX register */ - /* Write data to TXDR */ - hi2c->Instance->TXDR = *hi2c->pBuffPtr; - 8004856: 68fb ldr r3, [r7, #12] - 8004858: 6a5b ldr r3, [r3, #36] @ 0x24 - 800485a: 781a ldrb r2, [r3, #0] - 800485c: 68fb ldr r3, [r7, #12] - 800485e: 681b ldr r3, [r3, #0] - 8004860: 629a str r2, [r3, #40] @ 0x28 - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 8004862: 68fb ldr r3, [r7, #12] - 8004864: 6a5b ldr r3, [r3, #36] @ 0x24 - 8004866: 1c5a adds r2, r3, #1 - 8004868: 68fb ldr r3, [r7, #12] - 800486a: 625a str r2, [r3, #36] @ 0x24 - - hi2c->XferCount--; - 800486c: 68fb ldr r3, [r7, #12] - 800486e: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004870: b29b uxth r3, r3 - 8004872: 3b01 subs r3, #1 - 8004874: b29a uxth r2, r3 - 8004876: 68fb ldr r3, [r7, #12] - 8004878: 855a strh r2, [r3, #42] @ 0x2a - hi2c->XferSize--; - 800487a: 68fb ldr r3, [r7, #12] - 800487c: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800487e: 3b01 subs r3, #1 - 8004880: b29a uxth r2, r3 - 8004882: 68fb ldr r3, [r7, #12] - 8004884: 851a strh r2, [r3, #40] @ 0x28 - - /* Send Slave Address */ - /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, - 8004886: 68fb ldr r3, [r7, #12] - 8004888: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800488a: b2db uxtb r3, r3 - 800488c: 3301 adds r3, #1 - 800488e: b2da uxtb r2, r3 - 8004890: 8979 ldrh r1, [r7, #10] - 8004892: 4b4e ldr r3, [pc, #312] @ (80049cc ) - 8004894: 9300 str r3, [sp, #0] - 8004896: 697b ldr r3, [r7, #20] - 8004898: 68f8 ldr r0, [r7, #12] - 800489a: f000 fd59 bl 8005350 - 800489e: e066 b.n 800496e - } - else - { - /* Send Slave Address */ - /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, - 80048a0: 68fb ldr r3, [r7, #12] - 80048a2: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80048a4: b2da uxtb r2, r3 - 80048a6: 8979 ldrh r1, [r7, #10] - 80048a8: 4b48 ldr r3, [pc, #288] @ (80049cc ) - 80048aa: 9300 str r3, [sp, #0] - 80048ac: 697b ldr r3, [r7, #20] - 80048ae: 68f8 ldr r0, [r7, #12] - 80048b0: f000 fd4e bl 8005350 - I2C_GENERATE_START_WRITE); - } - - while (hi2c->XferCount > 0U) - 80048b4: e05b b.n 800496e - { - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 80048b6: 693a ldr r2, [r7, #16] - 80048b8: 6a39 ldr r1, [r7, #32] - 80048ba: 68f8 ldr r0, [r7, #12] - 80048bc: f000 fbdd bl 800507a - 80048c0: 4603 mov r3, r0 - 80048c2: 2b00 cmp r3, #0 - 80048c4: d001 beq.n 80048ca - { - return HAL_ERROR; - 80048c6: 2301 movs r3, #1 - 80048c8: e07b b.n 80049c2 - } - /* Write data to TXDR */ - hi2c->Instance->TXDR = *hi2c->pBuffPtr; - 80048ca: 68fb ldr r3, [r7, #12] - 80048cc: 6a5b ldr r3, [r3, #36] @ 0x24 - 80048ce: 781a ldrb r2, [r3, #0] - 80048d0: 68fb ldr r3, [r7, #12] - 80048d2: 681b ldr r3, [r3, #0] - 80048d4: 629a str r2, [r3, #40] @ 0x28 - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 80048d6: 68fb ldr r3, [r7, #12] - 80048d8: 6a5b ldr r3, [r3, #36] @ 0x24 - 80048da: 1c5a adds r2, r3, #1 - 80048dc: 68fb ldr r3, [r7, #12] - 80048de: 625a str r2, [r3, #36] @ 0x24 - - hi2c->XferCount--; - 80048e0: 68fb ldr r3, [r7, #12] - 80048e2: 8d5b ldrh r3, [r3, #42] @ 0x2a - 80048e4: b29b uxth r3, r3 - 80048e6: 3b01 subs r3, #1 - 80048e8: b29a uxth r2, r3 - 80048ea: 68fb ldr r3, [r7, #12] - 80048ec: 855a strh r2, [r3, #42] @ 0x2a - hi2c->XferSize--; - 80048ee: 68fb ldr r3, [r7, #12] - 80048f0: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80048f2: 3b01 subs r3, #1 - 80048f4: b29a uxth r2, r3 - 80048f6: 68fb ldr r3, [r7, #12] - 80048f8: 851a strh r2, [r3, #40] @ 0x28 - - if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) - 80048fa: 68fb ldr r3, [r7, #12] - 80048fc: 8d5b ldrh r3, [r3, #42] @ 0x2a - 80048fe: b29b uxth r3, r3 - 8004900: 2b00 cmp r3, #0 - 8004902: d034 beq.n 800496e - 8004904: 68fb ldr r3, [r7, #12] - 8004906: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004908: 2b00 cmp r3, #0 - 800490a: d130 bne.n 800496e - { - /* Wait until TCR flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) - 800490c: 693b ldr r3, [r7, #16] - 800490e: 9300 str r3, [sp, #0] - 8004910: 6a3b ldr r3, [r7, #32] - 8004912: 2200 movs r2, #0 - 8004914: 2180 movs r1, #128 @ 0x80 - 8004916: 68f8 ldr r0, [r7, #12] - 8004918: f000 fb56 bl 8004fc8 - 800491c: 4603 mov r3, r0 - 800491e: 2b00 cmp r3, #0 - 8004920: d001 beq.n 8004926 - { - return HAL_ERROR; - 8004922: 2301 movs r3, #1 - 8004924: e04d b.n 80049c2 - } - - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8004926: 68fb ldr r3, [r7, #12] - 8004928: 8d5b ldrh r3, [r3, #42] @ 0x2a - 800492a: b29b uxth r3, r3 - 800492c: 2bff cmp r3, #255 @ 0xff - 800492e: d90e bls.n 800494e - { - hi2c->XferSize = MAX_NBYTE_SIZE; - 8004930: 68fb ldr r3, [r7, #12] - 8004932: 22ff movs r2, #255 @ 0xff - 8004934: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, - 8004936: 68fb ldr r3, [r7, #12] - 8004938: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800493a: b2da uxtb r2, r3 - 800493c: 8979 ldrh r1, [r7, #10] - 800493e: 2300 movs r3, #0 - 8004940: 9300 str r3, [sp, #0] - 8004942: f04f 7380 mov.w r3, #16777216 @ 0x1000000 - 8004946: 68f8 ldr r0, [r7, #12] - 8004948: f000 fd02 bl 8005350 - 800494c: e00f b.n 800496e - I2C_NO_STARTSTOP); - } - else - { - hi2c->XferSize = hi2c->XferCount; - 800494e: 68fb ldr r3, [r7, #12] - 8004950: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004952: b29a uxth r2, r3 - 8004954: 68fb ldr r3, [r7, #12] - 8004956: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, - 8004958: 68fb ldr r3, [r7, #12] - 800495a: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800495c: b2da uxtb r2, r3 - 800495e: 8979 ldrh r1, [r7, #10] - 8004960: 2300 movs r3, #0 - 8004962: 9300 str r3, [sp, #0] - 8004964: f04f 7300 mov.w r3, #33554432 @ 0x2000000 - 8004968: 68f8 ldr r0, [r7, #12] - 800496a: f000 fcf1 bl 8005350 - while (hi2c->XferCount > 0U) - 800496e: 68fb ldr r3, [r7, #12] - 8004970: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004972: b29b uxth r3, r3 - 8004974: 2b00 cmp r3, #0 - 8004976: d19e bne.n 80048b6 - } - } - - /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ - /* Wait until STOPF flag is set */ - if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 8004978: 693a ldr r2, [r7, #16] - 800497a: 6a39 ldr r1, [r7, #32] - 800497c: 68f8 ldr r0, [r7, #12] - 800497e: f000 fbc3 bl 8005108 - 8004982: 4603 mov r3, r0 - 8004984: 2b00 cmp r3, #0 - 8004986: d001 beq.n 800498c - { - return HAL_ERROR; - 8004988: 2301 movs r3, #1 - 800498a: e01a b.n 80049c2 - } - - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 800498c: 68fb ldr r3, [r7, #12] - 800498e: 681b ldr r3, [r3, #0] - 8004990: 2220 movs r2, #32 - 8004992: 61da str r2, [r3, #28] - - /* Clear Configuration Register 2 */ - I2C_RESET_CR2(hi2c); - 8004994: 68fb ldr r3, [r7, #12] - 8004996: 681b ldr r3, [r3, #0] - 8004998: 6859 ldr r1, [r3, #4] - 800499a: 68fb ldr r3, [r7, #12] - 800499c: 681a ldr r2, [r3, #0] - 800499e: 4b0c ldr r3, [pc, #48] @ (80049d0 ) - 80049a0: 400b ands r3, r1 - 80049a2: 6053 str r3, [r2, #4] - - hi2c->State = HAL_I2C_STATE_READY; - 80049a4: 68fb ldr r3, [r7, #12] - 80049a6: 2220 movs r2, #32 - 80049a8: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 80049ac: 68fb ldr r3, [r7, #12] - 80049ae: 2200 movs r2, #0 - 80049b0: f883 2042 strb.w r2, [r3, #66] @ 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80049b4: 68fb ldr r3, [r7, #12] - 80049b6: 2200 movs r2, #0 - 80049b8: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - return HAL_OK; - 80049bc: 2300 movs r3, #0 - 80049be: e000 b.n 80049c2 - } - else - { - return HAL_BUSY; - 80049c0: 2302 movs r3, #2 - } -} - 80049c2: 4618 mov r0, r3 - 80049c4: 3718 adds r7, #24 - 80049c6: 46bd mov sp, r7 - 80049c8: bd80 pop {r7, pc} - 80049ca: bf00 nop - 80049cc: 80002000 .word 0x80002000 - 80049d0: fe00e800 .word 0xfe00e800 - -080049d4 : - * @param Timeout Timeout duration - * @retval HAL status - */ -HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, - uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) -{ - 80049d4: b580 push {r7, lr} - 80049d6: b088 sub sp, #32 - 80049d8: af02 add r7, sp, #8 - 80049da: 60f8 str r0, [r7, #12] - 80049dc: 4608 mov r0, r1 - 80049de: 4611 mov r1, r2 - 80049e0: 461a mov r2, r3 - 80049e2: 4603 mov r3, r0 - 80049e4: 817b strh r3, [r7, #10] - 80049e6: 460b mov r3, r1 - 80049e8: 813b strh r3, [r7, #8] - 80049ea: 4613 mov r3, r2 - 80049ec: 80fb strh r3, [r7, #6] - uint32_t tickstart; - - /* Check the parameters */ - assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); - - if (hi2c->State == HAL_I2C_STATE_READY) - 80049ee: 68fb ldr r3, [r7, #12] - 80049f0: f893 3041 ldrb.w r3, [r3, #65] @ 0x41 - 80049f4: b2db uxtb r3, r3 - 80049f6: 2b20 cmp r3, #32 - 80049f8: f040 80f9 bne.w 8004bee - { - if ((pData == NULL) || (Size == 0U)) - 80049fc: 6a3b ldr r3, [r7, #32] - 80049fe: 2b00 cmp r3, #0 - 8004a00: d002 beq.n 8004a08 - 8004a02: 8cbb ldrh r3, [r7, #36] @ 0x24 - 8004a04: 2b00 cmp r3, #0 - 8004a06: d105 bne.n 8004a14 - { - hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; - 8004a08: 68fb ldr r3, [r7, #12] - 8004a0a: f44f 7200 mov.w r2, #512 @ 0x200 - 8004a0e: 645a str r2, [r3, #68] @ 0x44 - return HAL_ERROR; - 8004a10: 2301 movs r3, #1 - 8004a12: e0ed b.n 8004bf0 - } - - /* Process Locked */ - __HAL_LOCK(hi2c); - 8004a14: 68fb ldr r3, [r7, #12] - 8004a16: f893 3040 ldrb.w r3, [r3, #64] @ 0x40 - 8004a1a: 2b01 cmp r3, #1 - 8004a1c: d101 bne.n 8004a22 - 8004a1e: 2302 movs r3, #2 - 8004a20: e0e6 b.n 8004bf0 - 8004a22: 68fb ldr r3, [r7, #12] - 8004a24: 2201 movs r2, #1 - 8004a26: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - /* Init tickstart for timeout management*/ - tickstart = HAL_GetTick(); - 8004a2a: f7ff fb77 bl 800411c - 8004a2e: 6178 str r0, [r7, #20] - - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) - 8004a30: 697b ldr r3, [r7, #20] - 8004a32: 9300 str r3, [sp, #0] - 8004a34: 2319 movs r3, #25 - 8004a36: 2201 movs r2, #1 - 8004a38: f44f 4100 mov.w r1, #32768 @ 0x8000 - 8004a3c: 68f8 ldr r0, [r7, #12] - 8004a3e: f000 fac3 bl 8004fc8 - 8004a42: 4603 mov r3, r0 - 8004a44: 2b00 cmp r3, #0 - 8004a46: d001 beq.n 8004a4c - { - return HAL_ERROR; - 8004a48: 2301 movs r3, #1 - 8004a4a: e0d1 b.n 8004bf0 - } - - hi2c->State = HAL_I2C_STATE_BUSY_TX; - 8004a4c: 68fb ldr r3, [r7, #12] - 8004a4e: 2221 movs r2, #33 @ 0x21 - 8004a50: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_MEM; - 8004a54: 68fb ldr r3, [r7, #12] - 8004a56: 2240 movs r2, #64 @ 0x40 - 8004a58: f883 2042 strb.w r2, [r3, #66] @ 0x42 - hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 8004a5c: 68fb ldr r3, [r7, #12] - 8004a5e: 2200 movs r2, #0 - 8004a60: 645a str r2, [r3, #68] @ 0x44 - - /* Prepare transfer parameters */ - hi2c->pBuffPtr = pData; - 8004a62: 68fb ldr r3, [r7, #12] - 8004a64: 6a3a ldr r2, [r7, #32] - 8004a66: 625a str r2, [r3, #36] @ 0x24 - hi2c->XferCount = Size; - 8004a68: 68fb ldr r3, [r7, #12] - 8004a6a: 8cba ldrh r2, [r7, #36] @ 0x24 - 8004a6c: 855a strh r2, [r3, #42] @ 0x2a - hi2c->XferISR = NULL; - 8004a6e: 68fb ldr r3, [r7, #12] - 8004a70: 2200 movs r2, #0 - 8004a72: 635a str r2, [r3, #52] @ 0x34 - - /* Send Slave Address and Memory Address */ - if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) - 8004a74: 88f8 ldrh r0, [r7, #6] - 8004a76: 893a ldrh r2, [r7, #8] - 8004a78: 8979 ldrh r1, [r7, #10] - 8004a7a: 697b ldr r3, [r7, #20] - 8004a7c: 9301 str r3, [sp, #4] - 8004a7e: 6abb ldr r3, [r7, #40] @ 0x28 - 8004a80: 9300 str r3, [sp, #0] - 8004a82: 4603 mov r3, r0 - 8004a84: 68f8 ldr r0, [r7, #12] - 8004a86: f000 f9d3 bl 8004e30 - 8004a8a: 4603 mov r3, r0 - 8004a8c: 2b00 cmp r3, #0 - 8004a8e: d005 beq.n 8004a9c - { - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8004a90: 68fb ldr r3, [r7, #12] - 8004a92: 2200 movs r2, #0 - 8004a94: f883 2040 strb.w r2, [r3, #64] @ 0x40 - return HAL_ERROR; - 8004a98: 2301 movs r3, #1 - 8004a9a: e0a9 b.n 8004bf0 - } - - /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8004a9c: 68fb ldr r3, [r7, #12] - 8004a9e: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004aa0: b29b uxth r3, r3 - 8004aa2: 2bff cmp r3, #255 @ 0xff - 8004aa4: d90e bls.n 8004ac4 - { - hi2c->XferSize = MAX_NBYTE_SIZE; - 8004aa6: 68fb ldr r3, [r7, #12] - 8004aa8: 22ff movs r2, #255 @ 0xff - 8004aaa: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); - 8004aac: 68fb ldr r3, [r7, #12] - 8004aae: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004ab0: b2da uxtb r2, r3 - 8004ab2: 8979 ldrh r1, [r7, #10] - 8004ab4: 2300 movs r3, #0 - 8004ab6: 9300 str r3, [sp, #0] - 8004ab8: f04f 7380 mov.w r3, #16777216 @ 0x1000000 - 8004abc: 68f8 ldr r0, [r7, #12] - 8004abe: f000 fc47 bl 8005350 - 8004ac2: e00f b.n 8004ae4 - } - else - { - hi2c->XferSize = hi2c->XferCount; - 8004ac4: 68fb ldr r3, [r7, #12] - 8004ac6: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004ac8: b29a uxth r2, r3 - 8004aca: 68fb ldr r3, [r7, #12] - 8004acc: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); - 8004ace: 68fb ldr r3, [r7, #12] - 8004ad0: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004ad2: b2da uxtb r2, r3 - 8004ad4: 8979 ldrh r1, [r7, #10] - 8004ad6: 2300 movs r3, #0 - 8004ad8: 9300 str r3, [sp, #0] - 8004ada: f04f 7300 mov.w r3, #33554432 @ 0x2000000 - 8004ade: 68f8 ldr r0, [r7, #12] - 8004ae0: f000 fc36 bl 8005350 - } - - do - { - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 8004ae4: 697a ldr r2, [r7, #20] - 8004ae6: 6ab9 ldr r1, [r7, #40] @ 0x28 - 8004ae8: 68f8 ldr r0, [r7, #12] - 8004aea: f000 fac6 bl 800507a - 8004aee: 4603 mov r3, r0 - 8004af0: 2b00 cmp r3, #0 - 8004af2: d001 beq.n 8004af8 - { - return HAL_ERROR; - 8004af4: 2301 movs r3, #1 - 8004af6: e07b b.n 8004bf0 - } - - /* Write data to TXDR */ - hi2c->Instance->TXDR = *hi2c->pBuffPtr; - 8004af8: 68fb ldr r3, [r7, #12] - 8004afa: 6a5b ldr r3, [r3, #36] @ 0x24 - 8004afc: 781a ldrb r2, [r3, #0] - 8004afe: 68fb ldr r3, [r7, #12] - 8004b00: 681b ldr r3, [r3, #0] - 8004b02: 629a str r2, [r3, #40] @ 0x28 - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 8004b04: 68fb ldr r3, [r7, #12] - 8004b06: 6a5b ldr r3, [r3, #36] @ 0x24 - 8004b08: 1c5a adds r2, r3, #1 - 8004b0a: 68fb ldr r3, [r7, #12] - 8004b0c: 625a str r2, [r3, #36] @ 0x24 - - hi2c->XferCount--; - 8004b0e: 68fb ldr r3, [r7, #12] - 8004b10: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004b12: b29b uxth r3, r3 - 8004b14: 3b01 subs r3, #1 - 8004b16: b29a uxth r2, r3 - 8004b18: 68fb ldr r3, [r7, #12] - 8004b1a: 855a strh r2, [r3, #42] @ 0x2a - hi2c->XferSize--; - 8004b1c: 68fb ldr r3, [r7, #12] - 8004b1e: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004b20: 3b01 subs r3, #1 - 8004b22: b29a uxth r2, r3 - 8004b24: 68fb ldr r3, [r7, #12] - 8004b26: 851a strh r2, [r3, #40] @ 0x28 - - if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) - 8004b28: 68fb ldr r3, [r7, #12] - 8004b2a: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004b2c: b29b uxth r3, r3 - 8004b2e: 2b00 cmp r3, #0 - 8004b30: d034 beq.n 8004b9c - 8004b32: 68fb ldr r3, [r7, #12] - 8004b34: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004b36: 2b00 cmp r3, #0 - 8004b38: d130 bne.n 8004b9c - { - /* Wait until TCR flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) - 8004b3a: 697b ldr r3, [r7, #20] - 8004b3c: 9300 str r3, [sp, #0] - 8004b3e: 6abb ldr r3, [r7, #40] @ 0x28 - 8004b40: 2200 movs r2, #0 - 8004b42: 2180 movs r1, #128 @ 0x80 - 8004b44: 68f8 ldr r0, [r7, #12] - 8004b46: f000 fa3f bl 8004fc8 - 8004b4a: 4603 mov r3, r0 - 8004b4c: 2b00 cmp r3, #0 - 8004b4e: d001 beq.n 8004b54 - { - return HAL_ERROR; - 8004b50: 2301 movs r3, #1 - 8004b52: e04d b.n 8004bf0 - } - - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8004b54: 68fb ldr r3, [r7, #12] - 8004b56: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004b58: b29b uxth r3, r3 - 8004b5a: 2bff cmp r3, #255 @ 0xff - 8004b5c: d90e bls.n 8004b7c - { - hi2c->XferSize = MAX_NBYTE_SIZE; - 8004b5e: 68fb ldr r3, [r7, #12] - 8004b60: 22ff movs r2, #255 @ 0xff - 8004b62: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, - 8004b64: 68fb ldr r3, [r7, #12] - 8004b66: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004b68: b2da uxtb r2, r3 - 8004b6a: 8979 ldrh r1, [r7, #10] - 8004b6c: 2300 movs r3, #0 - 8004b6e: 9300 str r3, [sp, #0] - 8004b70: f04f 7380 mov.w r3, #16777216 @ 0x1000000 - 8004b74: 68f8 ldr r0, [r7, #12] - 8004b76: f000 fbeb bl 8005350 - 8004b7a: e00f b.n 8004b9c - I2C_NO_STARTSTOP); - } - else - { - hi2c->XferSize = hi2c->XferCount; - 8004b7c: 68fb ldr r3, [r7, #12] - 8004b7e: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004b80: b29a uxth r2, r3 - 8004b82: 68fb ldr r3, [r7, #12] - 8004b84: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, - 8004b86: 68fb ldr r3, [r7, #12] - 8004b88: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004b8a: b2da uxtb r2, r3 - 8004b8c: 8979 ldrh r1, [r7, #10] - 8004b8e: 2300 movs r3, #0 - 8004b90: 9300 str r3, [sp, #0] - 8004b92: f04f 7300 mov.w r3, #33554432 @ 0x2000000 - 8004b96: 68f8 ldr r0, [r7, #12] - 8004b98: f000 fbda bl 8005350 - I2C_NO_STARTSTOP); - } - } - - } while (hi2c->XferCount > 0U); - 8004b9c: 68fb ldr r3, [r7, #12] - 8004b9e: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004ba0: b29b uxth r3, r3 - 8004ba2: 2b00 cmp r3, #0 - 8004ba4: d19e bne.n 8004ae4 - - /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ - /* Wait until STOPF flag is reset */ - if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 8004ba6: 697a ldr r2, [r7, #20] - 8004ba8: 6ab9 ldr r1, [r7, #40] @ 0x28 - 8004baa: 68f8 ldr r0, [r7, #12] - 8004bac: f000 faac bl 8005108 - 8004bb0: 4603 mov r3, r0 - 8004bb2: 2b00 cmp r3, #0 - 8004bb4: d001 beq.n 8004bba - { - return HAL_ERROR; - 8004bb6: 2301 movs r3, #1 - 8004bb8: e01a b.n 8004bf0 - } - - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 8004bba: 68fb ldr r3, [r7, #12] - 8004bbc: 681b ldr r3, [r3, #0] - 8004bbe: 2220 movs r2, #32 - 8004bc0: 61da str r2, [r3, #28] - - /* Clear Configuration Register 2 */ - I2C_RESET_CR2(hi2c); - 8004bc2: 68fb ldr r3, [r7, #12] - 8004bc4: 681b ldr r3, [r3, #0] - 8004bc6: 6859 ldr r1, [r3, #4] - 8004bc8: 68fb ldr r3, [r7, #12] - 8004bca: 681a ldr r2, [r3, #0] - 8004bcc: 4b0a ldr r3, [pc, #40] @ (8004bf8 ) - 8004bce: 400b ands r3, r1 - 8004bd0: 6053 str r3, [r2, #4] - - hi2c->State = HAL_I2C_STATE_READY; - 8004bd2: 68fb ldr r3, [r7, #12] - 8004bd4: 2220 movs r2, #32 - 8004bd6: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 8004bda: 68fb ldr r3, [r7, #12] - 8004bdc: 2200 movs r2, #0 - 8004bde: f883 2042 strb.w r2, [r3, #66] @ 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8004be2: 68fb ldr r3, [r7, #12] - 8004be4: 2200 movs r2, #0 - 8004be6: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - return HAL_OK; - 8004bea: 2300 movs r3, #0 - 8004bec: e000 b.n 8004bf0 - } - else - { - return HAL_BUSY; - 8004bee: 2302 movs r3, #2 - } -} - 8004bf0: 4618 mov r0, r3 - 8004bf2: 3718 adds r7, #24 - 8004bf4: 46bd mov sp, r7 - 8004bf6: bd80 pop {r7, pc} - 8004bf8: fe00e800 .word 0xfe00e800 - -08004bfc : - * @param Timeout Timeout duration - * @retval HAL status - */ -HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, - uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) -{ - 8004bfc: b580 push {r7, lr} - 8004bfe: b088 sub sp, #32 - 8004c00: af02 add r7, sp, #8 - 8004c02: 60f8 str r0, [r7, #12] - 8004c04: 4608 mov r0, r1 - 8004c06: 4611 mov r1, r2 - 8004c08: 461a mov r2, r3 - 8004c0a: 4603 mov r3, r0 - 8004c0c: 817b strh r3, [r7, #10] - 8004c0e: 460b mov r3, r1 - 8004c10: 813b strh r3, [r7, #8] - 8004c12: 4613 mov r3, r2 - 8004c14: 80fb strh r3, [r7, #6] - uint32_t tickstart; - - /* Check the parameters */ - assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); - - if (hi2c->State == HAL_I2C_STATE_READY) - 8004c16: 68fb ldr r3, [r7, #12] - 8004c18: f893 3041 ldrb.w r3, [r3, #65] @ 0x41 - 8004c1c: b2db uxtb r3, r3 - 8004c1e: 2b20 cmp r3, #32 - 8004c20: f040 80fd bne.w 8004e1e - { - if ((pData == NULL) || (Size == 0U)) - 8004c24: 6a3b ldr r3, [r7, #32] - 8004c26: 2b00 cmp r3, #0 - 8004c28: d002 beq.n 8004c30 - 8004c2a: 8cbb ldrh r3, [r7, #36] @ 0x24 - 8004c2c: 2b00 cmp r3, #0 - 8004c2e: d105 bne.n 8004c3c - { - hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; - 8004c30: 68fb ldr r3, [r7, #12] - 8004c32: f44f 7200 mov.w r2, #512 @ 0x200 - 8004c36: 645a str r2, [r3, #68] @ 0x44 - return HAL_ERROR; - 8004c38: 2301 movs r3, #1 - 8004c3a: e0f1 b.n 8004e20 - } - - /* Process Locked */ - __HAL_LOCK(hi2c); - 8004c3c: 68fb ldr r3, [r7, #12] - 8004c3e: f893 3040 ldrb.w r3, [r3, #64] @ 0x40 - 8004c42: 2b01 cmp r3, #1 - 8004c44: d101 bne.n 8004c4a - 8004c46: 2302 movs r3, #2 - 8004c48: e0ea b.n 8004e20 - 8004c4a: 68fb ldr r3, [r7, #12] - 8004c4c: 2201 movs r2, #1 - 8004c4e: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - /* Init tickstart for timeout management*/ - tickstart = HAL_GetTick(); - 8004c52: f7ff fa63 bl 800411c - 8004c56: 6178 str r0, [r7, #20] - - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) - 8004c58: 697b ldr r3, [r7, #20] - 8004c5a: 9300 str r3, [sp, #0] - 8004c5c: 2319 movs r3, #25 - 8004c5e: 2201 movs r2, #1 - 8004c60: f44f 4100 mov.w r1, #32768 @ 0x8000 - 8004c64: 68f8 ldr r0, [r7, #12] - 8004c66: f000 f9af bl 8004fc8 - 8004c6a: 4603 mov r3, r0 - 8004c6c: 2b00 cmp r3, #0 - 8004c6e: d001 beq.n 8004c74 - { - return HAL_ERROR; - 8004c70: 2301 movs r3, #1 - 8004c72: e0d5 b.n 8004e20 - } - - hi2c->State = HAL_I2C_STATE_BUSY_RX; - 8004c74: 68fb ldr r3, [r7, #12] - 8004c76: 2222 movs r2, #34 @ 0x22 - 8004c78: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_MEM; - 8004c7c: 68fb ldr r3, [r7, #12] - 8004c7e: 2240 movs r2, #64 @ 0x40 - 8004c80: f883 2042 strb.w r2, [r3, #66] @ 0x42 - hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 8004c84: 68fb ldr r3, [r7, #12] - 8004c86: 2200 movs r2, #0 - 8004c88: 645a str r2, [r3, #68] @ 0x44 - - /* Prepare transfer parameters */ - hi2c->pBuffPtr = pData; - 8004c8a: 68fb ldr r3, [r7, #12] - 8004c8c: 6a3a ldr r2, [r7, #32] - 8004c8e: 625a str r2, [r3, #36] @ 0x24 - hi2c->XferCount = Size; - 8004c90: 68fb ldr r3, [r7, #12] - 8004c92: 8cba ldrh r2, [r7, #36] @ 0x24 - 8004c94: 855a strh r2, [r3, #42] @ 0x2a - hi2c->XferISR = NULL; - 8004c96: 68fb ldr r3, [r7, #12] - 8004c98: 2200 movs r2, #0 - 8004c9a: 635a str r2, [r3, #52] @ 0x34 - - /* Send Slave Address and Memory Address */ - if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) - 8004c9c: 88f8 ldrh r0, [r7, #6] - 8004c9e: 893a ldrh r2, [r7, #8] - 8004ca0: 8979 ldrh r1, [r7, #10] - 8004ca2: 697b ldr r3, [r7, #20] - 8004ca4: 9301 str r3, [sp, #4] - 8004ca6: 6abb ldr r3, [r7, #40] @ 0x28 - 8004ca8: 9300 str r3, [sp, #0] - 8004caa: 4603 mov r3, r0 - 8004cac: 68f8 ldr r0, [r7, #12] - 8004cae: f000 f913 bl 8004ed8 - 8004cb2: 4603 mov r3, r0 - 8004cb4: 2b00 cmp r3, #0 - 8004cb6: d005 beq.n 8004cc4 - { - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8004cb8: 68fb ldr r3, [r7, #12] - 8004cba: 2200 movs r2, #0 - 8004cbc: f883 2040 strb.w r2, [r3, #64] @ 0x40 - return HAL_ERROR; - 8004cc0: 2301 movs r3, #1 - 8004cc2: e0ad b.n 8004e20 - } - - /* Send Slave Address */ - /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8004cc4: 68fb ldr r3, [r7, #12] - 8004cc6: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004cc8: b29b uxth r3, r3 - 8004cca: 2bff cmp r3, #255 @ 0xff - 8004ccc: d90e bls.n 8004cec - { - hi2c->XferSize = 1U; - 8004cce: 68fb ldr r3, [r7, #12] - 8004cd0: 2201 movs r2, #1 - 8004cd2: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, - 8004cd4: 68fb ldr r3, [r7, #12] - 8004cd6: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004cd8: b2da uxtb r2, r3 - 8004cda: 8979 ldrh r1, [r7, #10] - 8004cdc: 4b52 ldr r3, [pc, #328] @ (8004e28 ) - 8004cde: 9300 str r3, [sp, #0] - 8004ce0: f04f 7380 mov.w r3, #16777216 @ 0x1000000 - 8004ce4: 68f8 ldr r0, [r7, #12] - 8004ce6: f000 fb33 bl 8005350 - 8004cea: e00f b.n 8004d0c - I2C_GENERATE_START_READ); - } - else - { - hi2c->XferSize = hi2c->XferCount; - 8004cec: 68fb ldr r3, [r7, #12] - 8004cee: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004cf0: b29a uxth r2, r3 - 8004cf2: 68fb ldr r3, [r7, #12] - 8004cf4: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, - 8004cf6: 68fb ldr r3, [r7, #12] - 8004cf8: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004cfa: b2da uxtb r2, r3 - 8004cfc: 8979 ldrh r1, [r7, #10] - 8004cfe: 4b4a ldr r3, [pc, #296] @ (8004e28 ) - 8004d00: 9300 str r3, [sp, #0] - 8004d02: f04f 7300 mov.w r3, #33554432 @ 0x2000000 - 8004d06: 68f8 ldr r0, [r7, #12] - 8004d08: f000 fb22 bl 8005350 - } - - do - { - /* Wait until RXNE flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) - 8004d0c: 697b ldr r3, [r7, #20] - 8004d0e: 9300 str r3, [sp, #0] - 8004d10: 6abb ldr r3, [r7, #40] @ 0x28 - 8004d12: 2200 movs r2, #0 - 8004d14: 2104 movs r1, #4 - 8004d16: 68f8 ldr r0, [r7, #12] - 8004d18: f000 f956 bl 8004fc8 - 8004d1c: 4603 mov r3, r0 - 8004d1e: 2b00 cmp r3, #0 - 8004d20: d001 beq.n 8004d26 - { - return HAL_ERROR; - 8004d22: 2301 movs r3, #1 - 8004d24: e07c b.n 8004e20 - } - - /* Read data from RXDR */ - *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; - 8004d26: 68fb ldr r3, [r7, #12] - 8004d28: 681b ldr r3, [r3, #0] - 8004d2a: 6a5a ldr r2, [r3, #36] @ 0x24 - 8004d2c: 68fb ldr r3, [r7, #12] - 8004d2e: 6a5b ldr r3, [r3, #36] @ 0x24 - 8004d30: b2d2 uxtb r2, r2 - 8004d32: 701a strb r2, [r3, #0] - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 8004d34: 68fb ldr r3, [r7, #12] - 8004d36: 6a5b ldr r3, [r3, #36] @ 0x24 - 8004d38: 1c5a adds r2, r3, #1 - 8004d3a: 68fb ldr r3, [r7, #12] - 8004d3c: 625a str r2, [r3, #36] @ 0x24 - - hi2c->XferSize--; - 8004d3e: 68fb ldr r3, [r7, #12] - 8004d40: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004d42: 3b01 subs r3, #1 - 8004d44: b29a uxth r2, r3 - 8004d46: 68fb ldr r3, [r7, #12] - 8004d48: 851a strh r2, [r3, #40] @ 0x28 - hi2c->XferCount--; - 8004d4a: 68fb ldr r3, [r7, #12] - 8004d4c: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004d4e: b29b uxth r3, r3 - 8004d50: 3b01 subs r3, #1 - 8004d52: b29a uxth r2, r3 - 8004d54: 68fb ldr r3, [r7, #12] - 8004d56: 855a strh r2, [r3, #42] @ 0x2a - - if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) - 8004d58: 68fb ldr r3, [r7, #12] - 8004d5a: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004d5c: b29b uxth r3, r3 - 8004d5e: 2b00 cmp r3, #0 - 8004d60: d034 beq.n 8004dcc - 8004d62: 68fb ldr r3, [r7, #12] - 8004d64: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004d66: 2b00 cmp r3, #0 - 8004d68: d130 bne.n 8004dcc - { - /* Wait until TCR flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) - 8004d6a: 697b ldr r3, [r7, #20] - 8004d6c: 9300 str r3, [sp, #0] - 8004d6e: 6abb ldr r3, [r7, #40] @ 0x28 - 8004d70: 2200 movs r2, #0 - 8004d72: 2180 movs r1, #128 @ 0x80 - 8004d74: 68f8 ldr r0, [r7, #12] - 8004d76: f000 f927 bl 8004fc8 - 8004d7a: 4603 mov r3, r0 - 8004d7c: 2b00 cmp r3, #0 - 8004d7e: d001 beq.n 8004d84 - { - return HAL_ERROR; - 8004d80: 2301 movs r3, #1 - 8004d82: e04d b.n 8004e20 - } - - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8004d84: 68fb ldr r3, [r7, #12] - 8004d86: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004d88: b29b uxth r3, r3 - 8004d8a: 2bff cmp r3, #255 @ 0xff - 8004d8c: d90e bls.n 8004dac - { - hi2c->XferSize = 1U; - 8004d8e: 68fb ldr r3, [r7, #12] - 8004d90: 2201 movs r2, #1 - 8004d92: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, - 8004d94: 68fb ldr r3, [r7, #12] - 8004d96: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004d98: b2da uxtb r2, r3 - 8004d9a: 8979 ldrh r1, [r7, #10] - 8004d9c: 2300 movs r3, #0 - 8004d9e: 9300 str r3, [sp, #0] - 8004da0: f04f 7380 mov.w r3, #16777216 @ 0x1000000 - 8004da4: 68f8 ldr r0, [r7, #12] - 8004da6: f000 fad3 bl 8005350 - 8004daa: e00f b.n 8004dcc - I2C_NO_STARTSTOP); - } - else - { - hi2c->XferSize = hi2c->XferCount; - 8004dac: 68fb ldr r3, [r7, #12] - 8004dae: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004db0: b29a uxth r2, r3 - 8004db2: 68fb ldr r3, [r7, #12] - 8004db4: 851a strh r2, [r3, #40] @ 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, - 8004db6: 68fb ldr r3, [r7, #12] - 8004db8: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8004dba: b2da uxtb r2, r3 - 8004dbc: 8979 ldrh r1, [r7, #10] - 8004dbe: 2300 movs r3, #0 - 8004dc0: 9300 str r3, [sp, #0] - 8004dc2: f04f 7300 mov.w r3, #33554432 @ 0x2000000 - 8004dc6: 68f8 ldr r0, [r7, #12] - 8004dc8: f000 fac2 bl 8005350 - I2C_NO_STARTSTOP); - } - } - } while (hi2c->XferCount > 0U); - 8004dcc: 68fb ldr r3, [r7, #12] - 8004dce: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8004dd0: b29b uxth r3, r3 - 8004dd2: 2b00 cmp r3, #0 - 8004dd4: d19a bne.n 8004d0c - - /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ - /* Wait until STOPF flag is reset */ - if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 8004dd6: 697a ldr r2, [r7, #20] - 8004dd8: 6ab9 ldr r1, [r7, #40] @ 0x28 - 8004dda: 68f8 ldr r0, [r7, #12] - 8004ddc: f000 f994 bl 8005108 - 8004de0: 4603 mov r3, r0 - 8004de2: 2b00 cmp r3, #0 - 8004de4: d001 beq.n 8004dea - { - return HAL_ERROR; - 8004de6: 2301 movs r3, #1 - 8004de8: e01a b.n 8004e20 - } - - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 8004dea: 68fb ldr r3, [r7, #12] - 8004dec: 681b ldr r3, [r3, #0] - 8004dee: 2220 movs r2, #32 - 8004df0: 61da str r2, [r3, #28] - - /* Clear Configuration Register 2 */ - I2C_RESET_CR2(hi2c); - 8004df2: 68fb ldr r3, [r7, #12] - 8004df4: 681b ldr r3, [r3, #0] - 8004df6: 6859 ldr r1, [r3, #4] - 8004df8: 68fb ldr r3, [r7, #12] - 8004dfa: 681a ldr r2, [r3, #0] - 8004dfc: 4b0b ldr r3, [pc, #44] @ (8004e2c ) - 8004dfe: 400b ands r3, r1 - 8004e00: 6053 str r3, [r2, #4] - - hi2c->State = HAL_I2C_STATE_READY; - 8004e02: 68fb ldr r3, [r7, #12] - 8004e04: 2220 movs r2, #32 - 8004e06: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 8004e0a: 68fb ldr r3, [r7, #12] - 8004e0c: 2200 movs r2, #0 - 8004e0e: f883 2042 strb.w r2, [r3, #66] @ 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8004e12: 68fb ldr r3, [r7, #12] - 8004e14: 2200 movs r2, #0 - 8004e16: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - return HAL_OK; - 8004e1a: 2300 movs r3, #0 - 8004e1c: e000 b.n 8004e20 - } - else - { - return HAL_BUSY; - 8004e1e: 2302 movs r3, #2 - } -} - 8004e20: 4618 mov r0, r3 - 8004e22: 3718 adds r7, #24 - 8004e24: 46bd mov sp, r7 - 8004e26: bd80 pop {r7, pc} - 8004e28: 80002400 .word 0x80002400 - 8004e2c: fe00e800 .word 0xfe00e800 - -08004e30 : - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, - uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, - uint32_t Tickstart) -{ - 8004e30: b580 push {r7, lr} - 8004e32: b086 sub sp, #24 - 8004e34: af02 add r7, sp, #8 - 8004e36: 60f8 str r0, [r7, #12] - 8004e38: 4608 mov r0, r1 - 8004e3a: 4611 mov r1, r2 - 8004e3c: 461a mov r2, r3 - 8004e3e: 4603 mov r3, r0 - 8004e40: 817b strh r3, [r7, #10] - 8004e42: 460b mov r3, r1 - 8004e44: 813b strh r3, [r7, #8] - 8004e46: 4613 mov r3, r2 - 8004e48: 80fb strh r3, [r7, #6] - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE); - 8004e4a: 88fb ldrh r3, [r7, #6] - 8004e4c: b2da uxtb r2, r3 - 8004e4e: 8979 ldrh r1, [r7, #10] - 8004e50: 4b20 ldr r3, [pc, #128] @ (8004ed4 ) - 8004e52: 9300 str r3, [sp, #0] - 8004e54: f04f 7380 mov.w r3, #16777216 @ 0x1000000 - 8004e58: 68f8 ldr r0, [r7, #12] - 8004e5a: f000 fa79 bl 8005350 - - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8004e5e: 69fa ldr r2, [r7, #28] - 8004e60: 69b9 ldr r1, [r7, #24] - 8004e62: 68f8 ldr r0, [r7, #12] - 8004e64: f000 f909 bl 800507a - 8004e68: 4603 mov r3, r0 - 8004e6a: 2b00 cmp r3, #0 - 8004e6c: d001 beq.n 8004e72 - { - return HAL_ERROR; - 8004e6e: 2301 movs r3, #1 - 8004e70: e02c b.n 8004ecc - } - - /* If Memory address size is 8Bit */ - if (MemAddSize == I2C_MEMADD_SIZE_8BIT) - 8004e72: 88fb ldrh r3, [r7, #6] - 8004e74: 2b01 cmp r3, #1 - 8004e76: d105 bne.n 8004e84 - { - /* Send Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); - 8004e78: 893b ldrh r3, [r7, #8] - 8004e7a: b2da uxtb r2, r3 - 8004e7c: 68fb ldr r3, [r7, #12] - 8004e7e: 681b ldr r3, [r3, #0] - 8004e80: 629a str r2, [r3, #40] @ 0x28 - 8004e82: e015 b.n 8004eb0 - } - /* If Memory address size is 16Bit */ - else - { - /* Send MSB of Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); - 8004e84: 893b ldrh r3, [r7, #8] - 8004e86: 0a1b lsrs r3, r3, #8 - 8004e88: b29b uxth r3, r3 - 8004e8a: b2da uxtb r2, r3 - 8004e8c: 68fb ldr r3, [r7, #12] - 8004e8e: 681b ldr r3, [r3, #0] - 8004e90: 629a str r2, [r3, #40] @ 0x28 - - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8004e92: 69fa ldr r2, [r7, #28] - 8004e94: 69b9 ldr r1, [r7, #24] - 8004e96: 68f8 ldr r0, [r7, #12] - 8004e98: f000 f8ef bl 800507a - 8004e9c: 4603 mov r3, r0 - 8004e9e: 2b00 cmp r3, #0 - 8004ea0: d001 beq.n 8004ea6 - { - return HAL_ERROR; - 8004ea2: 2301 movs r3, #1 - 8004ea4: e012 b.n 8004ecc - } - - /* Send LSB of Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); - 8004ea6: 893b ldrh r3, [r7, #8] - 8004ea8: b2da uxtb r2, r3 - 8004eaa: 68fb ldr r3, [r7, #12] - 8004eac: 681b ldr r3, [r3, #0] - 8004eae: 629a str r2, [r3, #40] @ 0x28 - } - - /* Wait until TCR flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) - 8004eb0: 69fb ldr r3, [r7, #28] - 8004eb2: 9300 str r3, [sp, #0] - 8004eb4: 69bb ldr r3, [r7, #24] - 8004eb6: 2200 movs r2, #0 - 8004eb8: 2180 movs r1, #128 @ 0x80 - 8004eba: 68f8 ldr r0, [r7, #12] - 8004ebc: f000 f884 bl 8004fc8 - 8004ec0: 4603 mov r3, r0 - 8004ec2: 2b00 cmp r3, #0 - 8004ec4: d001 beq.n 8004eca - { - return HAL_ERROR; - 8004ec6: 2301 movs r3, #1 - 8004ec8: e000 b.n 8004ecc - } - - return HAL_OK; - 8004eca: 2300 movs r3, #0 -} - 8004ecc: 4618 mov r0, r3 - 8004ece: 3710 adds r7, #16 - 8004ed0: 46bd mov sp, r7 - 8004ed2: bd80 pop {r7, pc} - 8004ed4: 80002000 .word 0x80002000 - -08004ed8 : - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, - uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, - uint32_t Tickstart) -{ - 8004ed8: b580 push {r7, lr} - 8004eda: b086 sub sp, #24 - 8004edc: af02 add r7, sp, #8 - 8004ede: 60f8 str r0, [r7, #12] - 8004ee0: 4608 mov r0, r1 - 8004ee2: 4611 mov r1, r2 - 8004ee4: 461a mov r2, r3 - 8004ee6: 4603 mov r3, r0 - 8004ee8: 817b strh r3, [r7, #10] - 8004eea: 460b mov r3, r1 - 8004eec: 813b strh r3, [r7, #8] - 8004eee: 4613 mov r3, r2 - 8004ef0: 80fb strh r3, [r7, #6] - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); - 8004ef2: 88fb ldrh r3, [r7, #6] - 8004ef4: b2da uxtb r2, r3 - 8004ef6: 8979 ldrh r1, [r7, #10] - 8004ef8: 4b20 ldr r3, [pc, #128] @ (8004f7c ) - 8004efa: 9300 str r3, [sp, #0] - 8004efc: 2300 movs r3, #0 - 8004efe: 68f8 ldr r0, [r7, #12] - 8004f00: f000 fa26 bl 8005350 - - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8004f04: 69fa ldr r2, [r7, #28] - 8004f06: 69b9 ldr r1, [r7, #24] - 8004f08: 68f8 ldr r0, [r7, #12] - 8004f0a: f000 f8b6 bl 800507a - 8004f0e: 4603 mov r3, r0 - 8004f10: 2b00 cmp r3, #0 - 8004f12: d001 beq.n 8004f18 - { - return HAL_ERROR; - 8004f14: 2301 movs r3, #1 - 8004f16: e02c b.n 8004f72 - } - - /* If Memory address size is 8Bit */ - if (MemAddSize == I2C_MEMADD_SIZE_8BIT) - 8004f18: 88fb ldrh r3, [r7, #6] - 8004f1a: 2b01 cmp r3, #1 - 8004f1c: d105 bne.n 8004f2a - { - /* Send Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); - 8004f1e: 893b ldrh r3, [r7, #8] - 8004f20: b2da uxtb r2, r3 - 8004f22: 68fb ldr r3, [r7, #12] - 8004f24: 681b ldr r3, [r3, #0] - 8004f26: 629a str r2, [r3, #40] @ 0x28 - 8004f28: e015 b.n 8004f56 - } - /* If Memory address size is 16Bit */ - else - { - /* Send MSB of Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); - 8004f2a: 893b ldrh r3, [r7, #8] - 8004f2c: 0a1b lsrs r3, r3, #8 - 8004f2e: b29b uxth r3, r3 - 8004f30: b2da uxtb r2, r3 - 8004f32: 68fb ldr r3, [r7, #12] - 8004f34: 681b ldr r3, [r3, #0] - 8004f36: 629a str r2, [r3, #40] @ 0x28 - - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8004f38: 69fa ldr r2, [r7, #28] - 8004f3a: 69b9 ldr r1, [r7, #24] - 8004f3c: 68f8 ldr r0, [r7, #12] - 8004f3e: f000 f89c bl 800507a - 8004f42: 4603 mov r3, r0 - 8004f44: 2b00 cmp r3, #0 - 8004f46: d001 beq.n 8004f4c - { - return HAL_ERROR; - 8004f48: 2301 movs r3, #1 - 8004f4a: e012 b.n 8004f72 - } - - /* Send LSB of Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); - 8004f4c: 893b ldrh r3, [r7, #8] - 8004f4e: b2da uxtb r2, r3 - 8004f50: 68fb ldr r3, [r7, #12] - 8004f52: 681b ldr r3, [r3, #0] - 8004f54: 629a str r2, [r3, #40] @ 0x28 - } - - /* Wait until TC flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) - 8004f56: 69fb ldr r3, [r7, #28] - 8004f58: 9300 str r3, [sp, #0] - 8004f5a: 69bb ldr r3, [r7, #24] - 8004f5c: 2200 movs r2, #0 - 8004f5e: 2140 movs r1, #64 @ 0x40 - 8004f60: 68f8 ldr r0, [r7, #12] - 8004f62: f000 f831 bl 8004fc8 - 8004f66: 4603 mov r3, r0 - 8004f68: 2b00 cmp r3, #0 - 8004f6a: d001 beq.n 8004f70 - { - return HAL_ERROR; - 8004f6c: 2301 movs r3, #1 - 8004f6e: e000 b.n 8004f72 - } - - return HAL_OK; - 8004f70: 2300 movs r3, #0 -} - 8004f72: 4618 mov r0, r3 - 8004f74: 3710 adds r7, #16 - 8004f76: 46bd mov sp, r7 - 8004f78: bd80 pop {r7, pc} - 8004f7a: bf00 nop - 8004f7c: 80002000 .word 0x80002000 - -08004f80 : - * @brief I2C Tx data register flush process. - * @param hi2c I2C handle. - * @retval None - */ -static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) -{ - 8004f80: b480 push {r7} - 8004f82: b083 sub sp, #12 - 8004f84: af00 add r7, sp, #0 - 8004f86: 6078 str r0, [r7, #4] - /* If a pending TXIS flag is set */ - /* Write a dummy data in TXDR to clear it */ - if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) - 8004f88: 687b ldr r3, [r7, #4] - 8004f8a: 681b ldr r3, [r3, #0] - 8004f8c: 699b ldr r3, [r3, #24] - 8004f8e: f003 0302 and.w r3, r3, #2 - 8004f92: 2b02 cmp r3, #2 - 8004f94: d103 bne.n 8004f9e - { - hi2c->Instance->TXDR = 0x00U; - 8004f96: 687b ldr r3, [r7, #4] - 8004f98: 681b ldr r3, [r3, #0] - 8004f9a: 2200 movs r2, #0 - 8004f9c: 629a str r2, [r3, #40] @ 0x28 - } - - /* Flush TX register if not empty */ - if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) - 8004f9e: 687b ldr r3, [r7, #4] - 8004fa0: 681b ldr r3, [r3, #0] - 8004fa2: 699b ldr r3, [r3, #24] - 8004fa4: f003 0301 and.w r3, r3, #1 - 8004fa8: 2b01 cmp r3, #1 - 8004faa: d007 beq.n 8004fbc - { - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); - 8004fac: 687b ldr r3, [r7, #4] - 8004fae: 681b ldr r3, [r3, #0] - 8004fb0: 699a ldr r2, [r3, #24] - 8004fb2: 687b ldr r3, [r7, #4] - 8004fb4: 681b ldr r3, [r3, #0] - 8004fb6: f042 0201 orr.w r2, r2, #1 - 8004fba: 619a str r2, [r3, #24] - } -} - 8004fbc: bf00 nop - 8004fbe: 370c adds r7, #12 - 8004fc0: 46bd mov sp, r7 - 8004fc2: f85d 7b04 ldr.w r7, [sp], #4 - 8004fc6: 4770 bx lr - -08004fc8 : - * @param Tickstart Tick start value - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, - uint32_t Timeout, uint32_t Tickstart) -{ - 8004fc8: b580 push {r7, lr} - 8004fca: b084 sub sp, #16 - 8004fcc: af00 add r7, sp, #0 - 8004fce: 60f8 str r0, [r7, #12] - 8004fd0: 60b9 str r1, [r7, #8] - 8004fd2: 603b str r3, [r7, #0] - 8004fd4: 4613 mov r3, r2 - 8004fd6: 71fb strb r3, [r7, #7] - while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 8004fd8: e03b b.n 8005052 - { - /* Check if an error is detected */ - if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) - 8004fda: 69ba ldr r2, [r7, #24] - 8004fdc: 6839 ldr r1, [r7, #0] - 8004fde: 68f8 ldr r0, [r7, #12] - 8004fe0: f000 f8d6 bl 8005190 - 8004fe4: 4603 mov r3, r0 - 8004fe6: 2b00 cmp r3, #0 - 8004fe8: d001 beq.n 8004fee - { - return HAL_ERROR; - 8004fea: 2301 movs r3, #1 - 8004fec: e041 b.n 8005072 - } - - /* Check for the Timeout */ - if (Timeout != HAL_MAX_DELAY) - 8004fee: 683b ldr r3, [r7, #0] - 8004ff0: f1b3 3fff cmp.w r3, #4294967295 - 8004ff4: d02d beq.n 8005052 - { - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8004ff6: f7ff f891 bl 800411c - 8004ffa: 4602 mov r2, r0 - 8004ffc: 69bb ldr r3, [r7, #24] - 8004ffe: 1ad3 subs r3, r2, r3 - 8005000: 683a ldr r2, [r7, #0] - 8005002: 429a cmp r2, r3 - 8005004: d302 bcc.n 800500c - 8005006: 683b ldr r3, [r7, #0] - 8005008: 2b00 cmp r3, #0 - 800500a: d122 bne.n 8005052 - { - if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) - 800500c: 68fb ldr r3, [r7, #12] - 800500e: 681b ldr r3, [r3, #0] - 8005010: 699a ldr r2, [r3, #24] - 8005012: 68bb ldr r3, [r7, #8] - 8005014: 4013 ands r3, r2 - 8005016: 68ba ldr r2, [r7, #8] - 8005018: 429a cmp r2, r3 - 800501a: bf0c ite eq - 800501c: 2301 moveq r3, #1 - 800501e: 2300 movne r3, #0 - 8005020: b2db uxtb r3, r3 - 8005022: 461a mov r2, r3 - 8005024: 79fb ldrb r3, [r7, #7] - 8005026: 429a cmp r2, r3 - 8005028: d113 bne.n 8005052 - { - hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 800502a: 68fb ldr r3, [r7, #12] - 800502c: 6c5b ldr r3, [r3, #68] @ 0x44 - 800502e: f043 0220 orr.w r2, r3, #32 - 8005032: 68fb ldr r3, [r7, #12] - 8005034: 645a str r2, [r3, #68] @ 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 8005036: 68fb ldr r3, [r7, #12] - 8005038: 2220 movs r2, #32 - 800503a: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 800503e: 68fb ldr r3, [r7, #12] - 8005040: 2200 movs r2, #0 - 8005042: f883 2042 strb.w r2, [r3, #66] @ 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8005046: 68fb ldr r3, [r7, #12] - 8005048: 2200 movs r2, #0 - 800504a: f883 2040 strb.w r2, [r3, #64] @ 0x40 - return HAL_ERROR; - 800504e: 2301 movs r3, #1 - 8005050: e00f b.n 8005072 - while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 8005052: 68fb ldr r3, [r7, #12] - 8005054: 681b ldr r3, [r3, #0] - 8005056: 699a ldr r2, [r3, #24] - 8005058: 68bb ldr r3, [r7, #8] - 800505a: 4013 ands r3, r2 - 800505c: 68ba ldr r2, [r7, #8] - 800505e: 429a cmp r2, r3 - 8005060: bf0c ite eq - 8005062: 2301 moveq r3, #1 - 8005064: 2300 movne r3, #0 - 8005066: b2db uxtb r3, r3 - 8005068: 461a mov r2, r3 - 800506a: 79fb ldrb r3, [r7, #7] - 800506c: 429a cmp r2, r3 - 800506e: d0b4 beq.n 8004fda - } - } - } - } - return HAL_OK; - 8005070: 2300 movs r3, #0 -} - 8005072: 4618 mov r0, r3 - 8005074: 3710 adds r7, #16 - 8005076: 46bd mov sp, r7 - 8005078: bd80 pop {r7, pc} - -0800507a : - * @param Tickstart Tick start value - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, - uint32_t Tickstart) -{ - 800507a: b580 push {r7, lr} - 800507c: b084 sub sp, #16 - 800507e: af00 add r7, sp, #0 - 8005080: 60f8 str r0, [r7, #12] - 8005082: 60b9 str r1, [r7, #8] - 8005084: 607a str r2, [r7, #4] - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) - 8005086: e033 b.n 80050f0 - { - /* Check if an error is detected */ - if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) - 8005088: 687a ldr r2, [r7, #4] - 800508a: 68b9 ldr r1, [r7, #8] - 800508c: 68f8 ldr r0, [r7, #12] - 800508e: f000 f87f bl 8005190 - 8005092: 4603 mov r3, r0 - 8005094: 2b00 cmp r3, #0 - 8005096: d001 beq.n 800509c - { - return HAL_ERROR; - 8005098: 2301 movs r3, #1 - 800509a: e031 b.n 8005100 - } - - /* Check for the Timeout */ - if (Timeout != HAL_MAX_DELAY) - 800509c: 68bb ldr r3, [r7, #8] - 800509e: f1b3 3fff cmp.w r3, #4294967295 - 80050a2: d025 beq.n 80050f0 - { - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 80050a4: f7ff f83a bl 800411c - 80050a8: 4602 mov r2, r0 - 80050aa: 687b ldr r3, [r7, #4] - 80050ac: 1ad3 subs r3, r2, r3 - 80050ae: 68ba ldr r2, [r7, #8] - 80050b0: 429a cmp r2, r3 - 80050b2: d302 bcc.n 80050ba - 80050b4: 68bb ldr r3, [r7, #8] - 80050b6: 2b00 cmp r3, #0 - 80050b8: d11a bne.n 80050f0 - { - if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) - 80050ba: 68fb ldr r3, [r7, #12] - 80050bc: 681b ldr r3, [r3, #0] - 80050be: 699b ldr r3, [r3, #24] - 80050c0: f003 0302 and.w r3, r3, #2 - 80050c4: 2b02 cmp r3, #2 - 80050c6: d013 beq.n 80050f0 - { - hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 80050c8: 68fb ldr r3, [r7, #12] - 80050ca: 6c5b ldr r3, [r3, #68] @ 0x44 - 80050cc: f043 0220 orr.w r2, r3, #32 - 80050d0: 68fb ldr r3, [r7, #12] - 80050d2: 645a str r2, [r3, #68] @ 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 80050d4: 68fb ldr r3, [r7, #12] - 80050d6: 2220 movs r2, #32 - 80050d8: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 80050dc: 68fb ldr r3, [r7, #12] - 80050de: 2200 movs r2, #0 - 80050e0: f883 2042 strb.w r2, [r3, #66] @ 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80050e4: 68fb ldr r3, [r7, #12] - 80050e6: 2200 movs r2, #0 - 80050e8: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - return HAL_ERROR; - 80050ec: 2301 movs r3, #1 - 80050ee: e007 b.n 8005100 - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) - 80050f0: 68fb ldr r3, [r7, #12] - 80050f2: 681b ldr r3, [r3, #0] - 80050f4: 699b ldr r3, [r3, #24] - 80050f6: f003 0302 and.w r3, r3, #2 - 80050fa: 2b02 cmp r3, #2 - 80050fc: d1c4 bne.n 8005088 - } - } - } - } - return HAL_OK; - 80050fe: 2300 movs r3, #0 -} - 8005100: 4618 mov r0, r3 - 8005102: 3710 adds r7, #16 - 8005104: 46bd mov sp, r7 - 8005106: bd80 pop {r7, pc} - -08005108 : - * @param Tickstart Tick start value - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, - uint32_t Tickstart) -{ - 8005108: b580 push {r7, lr} - 800510a: b084 sub sp, #16 - 800510c: af00 add r7, sp, #0 - 800510e: 60f8 str r0, [r7, #12] - 8005110: 60b9 str r1, [r7, #8] - 8005112: 607a str r2, [r7, #4] - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 8005114: e02f b.n 8005176 - { - /* Check if an error is detected */ - if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) - 8005116: 687a ldr r2, [r7, #4] - 8005118: 68b9 ldr r1, [r7, #8] - 800511a: 68f8 ldr r0, [r7, #12] - 800511c: f000 f838 bl 8005190 - 8005120: 4603 mov r3, r0 - 8005122: 2b00 cmp r3, #0 - 8005124: d001 beq.n 800512a - { - return HAL_ERROR; - 8005126: 2301 movs r3, #1 - 8005128: e02d b.n 8005186 - } - - /* Check for the Timeout */ - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 800512a: f7fe fff7 bl 800411c - 800512e: 4602 mov r2, r0 - 8005130: 687b ldr r3, [r7, #4] - 8005132: 1ad3 subs r3, r2, r3 - 8005134: 68ba ldr r2, [r7, #8] - 8005136: 429a cmp r2, r3 - 8005138: d302 bcc.n 8005140 - 800513a: 68bb ldr r3, [r7, #8] - 800513c: 2b00 cmp r3, #0 - 800513e: d11a bne.n 8005176 - { - if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) - 8005140: 68fb ldr r3, [r7, #12] - 8005142: 681b ldr r3, [r3, #0] - 8005144: 699b ldr r3, [r3, #24] - 8005146: f003 0320 and.w r3, r3, #32 - 800514a: 2b20 cmp r3, #32 - 800514c: d013 beq.n 8005176 - { - hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 800514e: 68fb ldr r3, [r7, #12] - 8005150: 6c5b ldr r3, [r3, #68] @ 0x44 - 8005152: f043 0220 orr.w r2, r3, #32 - 8005156: 68fb ldr r3, [r7, #12] - 8005158: 645a str r2, [r3, #68] @ 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 800515a: 68fb ldr r3, [r7, #12] - 800515c: 2220 movs r2, #32 - 800515e: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 8005162: 68fb ldr r3, [r7, #12] - 8005164: 2200 movs r2, #0 - 8005166: f883 2042 strb.w r2, [r3, #66] @ 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 800516a: 68fb ldr r3, [r7, #12] - 800516c: 2200 movs r2, #0 - 800516e: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - return HAL_ERROR; - 8005172: 2301 movs r3, #1 - 8005174: e007 b.n 8005186 - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 8005176: 68fb ldr r3, [r7, #12] - 8005178: 681b ldr r3, [r3, #0] - 800517a: 699b ldr r3, [r3, #24] - 800517c: f003 0320 and.w r3, r3, #32 - 8005180: 2b20 cmp r3, #32 - 8005182: d1c8 bne.n 8005116 - } - } - } - return HAL_OK; - 8005184: 2300 movs r3, #0 -} - 8005186: 4618 mov r0, r3 - 8005188: 3710 adds r7, #16 - 800518a: 46bd mov sp, r7 - 800518c: bd80 pop {r7, pc} - ... - -08005190 : - * @param Timeout Timeout duration - * @param Tickstart Tick start value - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) -{ - 8005190: b580 push {r7, lr} - 8005192: b08a sub sp, #40 @ 0x28 - 8005194: af00 add r7, sp, #0 - 8005196: 60f8 str r0, [r7, #12] - 8005198: 60b9 str r1, [r7, #8] - 800519a: 607a str r2, [r7, #4] - HAL_StatusTypeDef status = HAL_OK; - 800519c: 2300 movs r3, #0 - 800519e: f887 3027 strb.w r3, [r7, #39] @ 0x27 - uint32_t itflag = hi2c->Instance->ISR; - 80051a2: 68fb ldr r3, [r7, #12] - 80051a4: 681b ldr r3, [r3, #0] - 80051a6: 699b ldr r3, [r3, #24] - 80051a8: 61bb str r3, [r7, #24] - uint32_t error_code = 0; - 80051aa: 2300 movs r3, #0 - 80051ac: 623b str r3, [r7, #32] - uint32_t tickstart = Tickstart; - 80051ae: 687b ldr r3, [r7, #4] - 80051b0: 61fb str r3, [r7, #28] - uint32_t tmp1; - HAL_I2C_ModeTypeDef tmp2; - - if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) - 80051b2: 69bb ldr r3, [r7, #24] - 80051b4: f003 0310 and.w r3, r3, #16 - 80051b8: 2b00 cmp r3, #0 - 80051ba: d068 beq.n 800528e - { - /* Clear NACKF Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 80051bc: 68fb ldr r3, [r7, #12] - 80051be: 681b ldr r3, [r3, #0] - 80051c0: 2210 movs r2, #16 - 80051c2: 61da str r2, [r3, #28] - - /* Wait until STOP Flag is set or timeout occurred */ - /* AutoEnd should be initiate after AF */ - while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) - 80051c4: e049 b.n 800525a - { - /* Check for the Timeout */ - if (Timeout != HAL_MAX_DELAY) - 80051c6: 68bb ldr r3, [r7, #8] - 80051c8: f1b3 3fff cmp.w r3, #4294967295 - 80051cc: d045 beq.n 800525a - { - if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) - 80051ce: f7fe ffa5 bl 800411c - 80051d2: 4602 mov r2, r0 - 80051d4: 69fb ldr r3, [r7, #28] - 80051d6: 1ad3 subs r3, r2, r3 - 80051d8: 68ba ldr r2, [r7, #8] - 80051da: 429a cmp r2, r3 - 80051dc: d302 bcc.n 80051e4 - 80051de: 68bb ldr r3, [r7, #8] - 80051e0: 2b00 cmp r3, #0 - 80051e2: d13a bne.n 800525a - { - tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); - 80051e4: 68fb ldr r3, [r7, #12] - 80051e6: 681b ldr r3, [r3, #0] - 80051e8: 685b ldr r3, [r3, #4] - 80051ea: f403 4380 and.w r3, r3, #16384 @ 0x4000 - 80051ee: 617b str r3, [r7, #20] - tmp2 = hi2c->Mode; - 80051f0: 68fb ldr r3, [r7, #12] - 80051f2: f893 3042 ldrb.w r3, [r3, #66] @ 0x42 - 80051f6: 74fb strb r3, [r7, #19] - - /* In case of I2C still busy, try to regenerate a STOP manually */ - if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ - 80051f8: 68fb ldr r3, [r7, #12] - 80051fa: 681b ldr r3, [r3, #0] - 80051fc: 699b ldr r3, [r3, #24] - 80051fe: f403 4300 and.w r3, r3, #32768 @ 0x8000 - 8005202: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 - 8005206: d121 bne.n 800524c - 8005208: 697b ldr r3, [r7, #20] - 800520a: f5b3 4f80 cmp.w r3, #16384 @ 0x4000 - 800520e: d01d beq.n 800524c - (tmp1 != I2C_CR2_STOP) && \ - 8005210: 7cfb ldrb r3, [r7, #19] - 8005212: 2b20 cmp r3, #32 - 8005214: d01a beq.n 800524c - (tmp2 != HAL_I2C_MODE_SLAVE)) - { - /* Generate Stop */ - hi2c->Instance->CR2 |= I2C_CR2_STOP; - 8005216: 68fb ldr r3, [r7, #12] - 8005218: 681b ldr r3, [r3, #0] - 800521a: 685a ldr r2, [r3, #4] - 800521c: 68fb ldr r3, [r7, #12] - 800521e: 681b ldr r3, [r3, #0] - 8005220: f442 4280 orr.w r2, r2, #16384 @ 0x4000 - 8005224: 605a str r2, [r3, #4] - - /* Update Tick with new reference */ - tickstart = HAL_GetTick(); - 8005226: f7fe ff79 bl 800411c - 800522a: 61f8 str r0, [r7, #28] - } - - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 800522c: e00e b.n 800524c - { - /* Check for the Timeout */ - if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) - 800522e: f7fe ff75 bl 800411c - 8005232: 4602 mov r2, r0 - 8005234: 69fb ldr r3, [r7, #28] - 8005236: 1ad3 subs r3, r2, r3 - 8005238: 2b19 cmp r3, #25 - 800523a: d907 bls.n 800524c - { - error_code |= HAL_I2C_ERROR_TIMEOUT; - 800523c: 6a3b ldr r3, [r7, #32] - 800523e: f043 0320 orr.w r3, r3, #32 - 8005242: 623b str r3, [r7, #32] - - status = HAL_ERROR; - 8005244: 2301 movs r3, #1 - 8005246: f887 3027 strb.w r3, [r7, #39] @ 0x27 - - break; - 800524a: e006 b.n 800525a - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 800524c: 68fb ldr r3, [r7, #12] - 800524e: 681b ldr r3, [r3, #0] - 8005250: 699b ldr r3, [r3, #24] - 8005252: f003 0320 and.w r3, r3, #32 - 8005256: 2b20 cmp r3, #32 - 8005258: d1e9 bne.n 800522e - while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) - 800525a: 68fb ldr r3, [r7, #12] - 800525c: 681b ldr r3, [r3, #0] - 800525e: 699b ldr r3, [r3, #24] - 8005260: f003 0320 and.w r3, r3, #32 - 8005264: 2b20 cmp r3, #32 - 8005266: d003 beq.n 8005270 - 8005268: f897 3027 ldrb.w r3, [r7, #39] @ 0x27 - 800526c: 2b00 cmp r3, #0 - 800526e: d0aa beq.n 80051c6 - } - } - } - - /* In case STOP Flag is detected, clear it */ - if (status == HAL_OK) - 8005270: f897 3027 ldrb.w r3, [r7, #39] @ 0x27 - 8005274: 2b00 cmp r3, #0 - 8005276: d103 bne.n 8005280 - { - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 8005278: 68fb ldr r3, [r7, #12] - 800527a: 681b ldr r3, [r3, #0] - 800527c: 2220 movs r2, #32 - 800527e: 61da str r2, [r3, #28] - } - - error_code |= HAL_I2C_ERROR_AF; - 8005280: 6a3b ldr r3, [r7, #32] - 8005282: f043 0304 orr.w r3, r3, #4 - 8005286: 623b str r3, [r7, #32] - - status = HAL_ERROR; - 8005288: 2301 movs r3, #1 - 800528a: f887 3027 strb.w r3, [r7, #39] @ 0x27 - } - - /* Refresh Content of Status register */ - itflag = hi2c->Instance->ISR; - 800528e: 68fb ldr r3, [r7, #12] - 8005290: 681b ldr r3, [r3, #0] - 8005292: 699b ldr r3, [r3, #24] - 8005294: 61bb str r3, [r7, #24] - - /* Then verify if an additional errors occurs */ - /* Check if a Bus error occurred */ - if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) - 8005296: 69bb ldr r3, [r7, #24] - 8005298: f403 7380 and.w r3, r3, #256 @ 0x100 - 800529c: 2b00 cmp r3, #0 - 800529e: d00b beq.n 80052b8 - { - error_code |= HAL_I2C_ERROR_BERR; - 80052a0: 6a3b ldr r3, [r7, #32] - 80052a2: f043 0301 orr.w r3, r3, #1 - 80052a6: 623b str r3, [r7, #32] - - /* Clear BERR flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); - 80052a8: 68fb ldr r3, [r7, #12] - 80052aa: 681b ldr r3, [r3, #0] - 80052ac: f44f 7280 mov.w r2, #256 @ 0x100 - 80052b0: 61da str r2, [r3, #28] - - status = HAL_ERROR; - 80052b2: 2301 movs r3, #1 - 80052b4: f887 3027 strb.w r3, [r7, #39] @ 0x27 - } - - /* Check if an Over-Run/Under-Run error occurred */ - if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) - 80052b8: 69bb ldr r3, [r7, #24] - 80052ba: f403 6380 and.w r3, r3, #1024 @ 0x400 - 80052be: 2b00 cmp r3, #0 - 80052c0: d00b beq.n 80052da - { - error_code |= HAL_I2C_ERROR_OVR; - 80052c2: 6a3b ldr r3, [r7, #32] - 80052c4: f043 0308 orr.w r3, r3, #8 - 80052c8: 623b str r3, [r7, #32] - - /* Clear OVR flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); - 80052ca: 68fb ldr r3, [r7, #12] - 80052cc: 681b ldr r3, [r3, #0] - 80052ce: f44f 6280 mov.w r2, #1024 @ 0x400 - 80052d2: 61da str r2, [r3, #28] - - status = HAL_ERROR; - 80052d4: 2301 movs r3, #1 - 80052d6: f887 3027 strb.w r3, [r7, #39] @ 0x27 - } - - /* Check if an Arbitration Loss error occurred */ - if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) - 80052da: 69bb ldr r3, [r7, #24] - 80052dc: f403 7300 and.w r3, r3, #512 @ 0x200 - 80052e0: 2b00 cmp r3, #0 - 80052e2: d00b beq.n 80052fc - { - error_code |= HAL_I2C_ERROR_ARLO; - 80052e4: 6a3b ldr r3, [r7, #32] - 80052e6: f043 0302 orr.w r3, r3, #2 - 80052ea: 623b str r3, [r7, #32] - - /* Clear ARLO flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); - 80052ec: 68fb ldr r3, [r7, #12] - 80052ee: 681b ldr r3, [r3, #0] - 80052f0: f44f 7200 mov.w r2, #512 @ 0x200 - 80052f4: 61da str r2, [r3, #28] - - status = HAL_ERROR; - 80052f6: 2301 movs r3, #1 - 80052f8: f887 3027 strb.w r3, [r7, #39] @ 0x27 - } - - if (status != HAL_OK) - 80052fc: f897 3027 ldrb.w r3, [r7, #39] @ 0x27 - 8005300: 2b00 cmp r3, #0 - 8005302: d01c beq.n 800533e - { - /* Flush TX register */ - I2C_Flush_TXDR(hi2c); - 8005304: 68f8 ldr r0, [r7, #12] - 8005306: f7ff fe3b bl 8004f80 - - /* Clear Configuration Register 2 */ - I2C_RESET_CR2(hi2c); - 800530a: 68fb ldr r3, [r7, #12] - 800530c: 681b ldr r3, [r3, #0] - 800530e: 6859 ldr r1, [r3, #4] - 8005310: 68fb ldr r3, [r7, #12] - 8005312: 681a ldr r2, [r3, #0] - 8005314: 4b0d ldr r3, [pc, #52] @ (800534c ) - 8005316: 400b ands r3, r1 - 8005318: 6053 str r3, [r2, #4] - - hi2c->ErrorCode |= error_code; - 800531a: 68fb ldr r3, [r7, #12] - 800531c: 6c5a ldr r2, [r3, #68] @ 0x44 - 800531e: 6a3b ldr r3, [r7, #32] - 8005320: 431a orrs r2, r3 - 8005322: 68fb ldr r3, [r7, #12] - 8005324: 645a str r2, [r3, #68] @ 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 8005326: 68fb ldr r3, [r7, #12] - 8005328: 2220 movs r2, #32 - 800532a: f883 2041 strb.w r2, [r3, #65] @ 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 800532e: 68fb ldr r3, [r7, #12] - 8005330: 2200 movs r2, #0 - 8005332: f883 2042 strb.w r2, [r3, #66] @ 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8005336: 68fb ldr r3, [r7, #12] - 8005338: 2200 movs r2, #0 - 800533a: f883 2040 strb.w r2, [r3, #64] @ 0x40 - } - - return status; - 800533e: f897 3027 ldrb.w r3, [r7, #39] @ 0x27 -} - 8005342: 4618 mov r0, r3 - 8005344: 3728 adds r7, #40 @ 0x28 - 8005346: 46bd mov sp, r7 - 8005348: bd80 pop {r7, pc} - 800534a: bf00 nop - 800534c: fe00e800 .word 0xfe00e800 - -08005350 : - * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. - * @retval None - */ -static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t Mode, - uint32_t Request) -{ - 8005350: b480 push {r7} - 8005352: b087 sub sp, #28 - 8005354: af00 add r7, sp, #0 - 8005356: 60f8 str r0, [r7, #12] - 8005358: 607b str r3, [r7, #4] - 800535a: 460b mov r3, r1 - 800535c: 817b strh r3, [r7, #10] - 800535e: 4613 mov r3, r2 - 8005360: 727b strb r3, [r7, #9] - assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); - assert_param(IS_TRANSFER_MODE(Mode)); - assert_param(IS_TRANSFER_REQUEST(Request)); - - /* Declaration of tmp to prevent undefined behavior of volatile usage */ - uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ - 8005362: 897b ldrh r3, [r7, #10] - 8005364: f3c3 0209 ubfx r2, r3, #0, #10 - (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ - 8005368: 7a7b ldrb r3, [r7, #9] - 800536a: 041b lsls r3, r3, #16 - 800536c: f403 037f and.w r3, r3, #16711680 @ 0xff0000 - uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ - 8005370: 431a orrs r2, r3 - (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ - 8005372: 687b ldr r3, [r7, #4] - 8005374: 431a orrs r2, r3 - uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ - 8005376: 6a3b ldr r3, [r7, #32] - 8005378: 4313 orrs r3, r2 - 800537a: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 - 800537e: 617b str r3, [r7, #20] - (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); - - /* update CR2 register */ - MODIFY_REG(hi2c->Instance->CR2, \ - 8005380: 68fb ldr r3, [r7, #12] - 8005382: 681b ldr r3, [r3, #0] - 8005384: 685a ldr r2, [r3, #4] - 8005386: 6a3b ldr r3, [r7, #32] - 8005388: 0d5b lsrs r3, r3, #21 - 800538a: f403 6180 and.w r1, r3, #1024 @ 0x400 - 800538e: 4b08 ldr r3, [pc, #32] @ (80053b0 ) - 8005390: 430b orrs r3, r1 - 8005392: 43db mvns r3, r3 - 8005394: ea02 0103 and.w r1, r2, r3 - 8005398: 68fb ldr r3, [r7, #12] - 800539a: 681b ldr r3, [r3, #0] - 800539c: 697a ldr r2, [r7, #20] - 800539e: 430a orrs r2, r1 - 80053a0: 605a str r2, [r3, #4] - ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ - (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ - I2C_CR2_START | I2C_CR2_STOP)), tmp); -} - 80053a2: bf00 nop - 80053a4: 371c adds r7, #28 - 80053a6: 46bd mov sp, r7 - 80053a8: f85d 7b04 ldr.w r7, [sp], #4 - 80053ac: 4770 bx lr - 80053ae: bf00 nop - 80053b0: 03ff63ff .word 0x03ff63ff - -080053b4 : - * the configuration information for the specified I2Cx peripheral. - * @param AnalogFilter New state of the Analog filter. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter) -{ - 80053b4: b480 push {r7} - 80053b6: b083 sub sp, #12 - 80053b8: af00 add r7, sp, #0 - 80053ba: 6078 str r0, [r7, #4] - 80053bc: 6039 str r1, [r7, #0] - /* Check the parameters */ - assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); - assert_param(IS_I2C_ANALOG_FILTER(AnalogFilter)); - - if (hi2c->State == HAL_I2C_STATE_READY) - 80053be: 687b ldr r3, [r7, #4] - 80053c0: f893 3041 ldrb.w r3, [r3, #65] @ 0x41 - 80053c4: b2db uxtb r3, r3 - 80053c6: 2b20 cmp r3, #32 - 80053c8: d138 bne.n 800543c - { - /* Process Locked */ - __HAL_LOCK(hi2c); - 80053ca: 687b ldr r3, [r7, #4] - 80053cc: f893 3040 ldrb.w r3, [r3, #64] @ 0x40 - 80053d0: 2b01 cmp r3, #1 - 80053d2: d101 bne.n 80053d8 - 80053d4: 2302 movs r3, #2 - 80053d6: e032 b.n 800543e - 80053d8: 687b ldr r3, [r7, #4] - 80053da: 2201 movs r2, #1 - 80053dc: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - hi2c->State = HAL_I2C_STATE_BUSY; - 80053e0: 687b ldr r3, [r7, #4] - 80053e2: 2224 movs r2, #36 @ 0x24 - 80053e4: f883 2041 strb.w r2, [r3, #65] @ 0x41 - - /* Disable the selected I2C peripheral */ - __HAL_I2C_DISABLE(hi2c); - 80053e8: 687b ldr r3, [r7, #4] - 80053ea: 681b ldr r3, [r3, #0] - 80053ec: 681a ldr r2, [r3, #0] - 80053ee: 687b ldr r3, [r7, #4] - 80053f0: 681b ldr r3, [r3, #0] - 80053f2: f022 0201 bic.w r2, r2, #1 - 80053f6: 601a str r2, [r3, #0] - - /* Reset I2Cx ANOFF bit */ - hi2c->Instance->CR1 &= ~(I2C_CR1_ANFOFF); - 80053f8: 687b ldr r3, [r7, #4] - 80053fa: 681b ldr r3, [r3, #0] - 80053fc: 681a ldr r2, [r3, #0] - 80053fe: 687b ldr r3, [r7, #4] - 8005400: 681b ldr r3, [r3, #0] - 8005402: f422 5280 bic.w r2, r2, #4096 @ 0x1000 - 8005406: 601a str r2, [r3, #0] - - /* Set analog filter bit*/ - hi2c->Instance->CR1 |= AnalogFilter; - 8005408: 687b ldr r3, [r7, #4] - 800540a: 681b ldr r3, [r3, #0] - 800540c: 6819 ldr r1, [r3, #0] - 800540e: 687b ldr r3, [r7, #4] - 8005410: 681b ldr r3, [r3, #0] - 8005412: 683a ldr r2, [r7, #0] - 8005414: 430a orrs r2, r1 - 8005416: 601a str r2, [r3, #0] - - __HAL_I2C_ENABLE(hi2c); - 8005418: 687b ldr r3, [r7, #4] - 800541a: 681b ldr r3, [r3, #0] - 800541c: 681a ldr r2, [r3, #0] - 800541e: 687b ldr r3, [r7, #4] - 8005420: 681b ldr r3, [r3, #0] - 8005422: f042 0201 orr.w r2, r2, #1 - 8005426: 601a str r2, [r3, #0] - - hi2c->State = HAL_I2C_STATE_READY; - 8005428: 687b ldr r3, [r7, #4] - 800542a: 2220 movs r2, #32 - 800542c: f883 2041 strb.w r2, [r3, #65] @ 0x41 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8005430: 687b ldr r3, [r7, #4] - 8005432: 2200 movs r2, #0 - 8005434: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - return HAL_OK; - 8005438: 2300 movs r3, #0 - 800543a: e000 b.n 800543e - } - else - { - return HAL_BUSY; - 800543c: 2302 movs r3, #2 - } -} - 800543e: 4618 mov r0, r3 - 8005440: 370c adds r7, #12 - 8005442: 46bd mov sp, r7 - 8005444: f85d 7b04 ldr.w r7, [sp], #4 - 8005448: 4770 bx lr - -0800544a : - * the configuration information for the specified I2Cx peripheral. - * @param DigitalFilter Coefficient of digital noise filter between Min_Data=0x00 and Max_Data=0x0F. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter) -{ - 800544a: b480 push {r7} - 800544c: b085 sub sp, #20 - 800544e: af00 add r7, sp, #0 - 8005450: 6078 str r0, [r7, #4] - 8005452: 6039 str r1, [r7, #0] - - /* Check the parameters */ - assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); - assert_param(IS_I2C_DIGITAL_FILTER(DigitalFilter)); - - if (hi2c->State == HAL_I2C_STATE_READY) - 8005454: 687b ldr r3, [r7, #4] - 8005456: f893 3041 ldrb.w r3, [r3, #65] @ 0x41 - 800545a: b2db uxtb r3, r3 - 800545c: 2b20 cmp r3, #32 - 800545e: d139 bne.n 80054d4 - { - /* Process Locked */ - __HAL_LOCK(hi2c); - 8005460: 687b ldr r3, [r7, #4] - 8005462: f893 3040 ldrb.w r3, [r3, #64] @ 0x40 - 8005466: 2b01 cmp r3, #1 - 8005468: d101 bne.n 800546e - 800546a: 2302 movs r3, #2 - 800546c: e033 b.n 80054d6 - 800546e: 687b ldr r3, [r7, #4] - 8005470: 2201 movs r2, #1 - 8005472: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - hi2c->State = HAL_I2C_STATE_BUSY; - 8005476: 687b ldr r3, [r7, #4] - 8005478: 2224 movs r2, #36 @ 0x24 - 800547a: f883 2041 strb.w r2, [r3, #65] @ 0x41 - - /* Disable the selected I2C peripheral */ - __HAL_I2C_DISABLE(hi2c); - 800547e: 687b ldr r3, [r7, #4] - 8005480: 681b ldr r3, [r3, #0] - 8005482: 681a ldr r2, [r3, #0] - 8005484: 687b ldr r3, [r7, #4] - 8005486: 681b ldr r3, [r3, #0] - 8005488: f022 0201 bic.w r2, r2, #1 - 800548c: 601a str r2, [r3, #0] - - /* Get the old register value */ - tmpreg = hi2c->Instance->CR1; - 800548e: 687b ldr r3, [r7, #4] - 8005490: 681b ldr r3, [r3, #0] - 8005492: 681b ldr r3, [r3, #0] - 8005494: 60fb str r3, [r7, #12] - - /* Reset I2Cx DNF bits [11:8] */ - tmpreg &= ~(I2C_CR1_DNF); - 8005496: 68fb ldr r3, [r7, #12] - 8005498: f423 6370 bic.w r3, r3, #3840 @ 0xf00 - 800549c: 60fb str r3, [r7, #12] - - /* Set I2Cx DNF coefficient */ - tmpreg |= DigitalFilter << 8U; - 800549e: 683b ldr r3, [r7, #0] - 80054a0: 021b lsls r3, r3, #8 - 80054a2: 68fa ldr r2, [r7, #12] - 80054a4: 4313 orrs r3, r2 - 80054a6: 60fb str r3, [r7, #12] - - /* Store the new register value */ - hi2c->Instance->CR1 = tmpreg; - 80054a8: 687b ldr r3, [r7, #4] - 80054aa: 681b ldr r3, [r3, #0] - 80054ac: 68fa ldr r2, [r7, #12] - 80054ae: 601a str r2, [r3, #0] - - __HAL_I2C_ENABLE(hi2c); - 80054b0: 687b ldr r3, [r7, #4] - 80054b2: 681b ldr r3, [r3, #0] - 80054b4: 681a ldr r2, [r3, #0] - 80054b6: 687b ldr r3, [r7, #4] - 80054b8: 681b ldr r3, [r3, #0] - 80054ba: f042 0201 orr.w r2, r2, #1 - 80054be: 601a str r2, [r3, #0] - - hi2c->State = HAL_I2C_STATE_READY; - 80054c0: 687b ldr r3, [r7, #4] - 80054c2: 2220 movs r2, #32 - 80054c4: f883 2041 strb.w r2, [r3, #65] @ 0x41 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80054c8: 687b ldr r3, [r7, #4] - 80054ca: 2200 movs r2, #0 - 80054cc: f883 2040 strb.w r2, [r3, #64] @ 0x40 - - return HAL_OK; - 80054d0: 2300 movs r3, #0 - 80054d2: e000 b.n 80054d6 - } - else - { - return HAL_BUSY; - 80054d4: 2302 movs r3, #2 - } -} - 80054d6: 4618 mov r0, r3 - 80054d8: 3714 adds r7, #20 - 80054da: 46bd mov sp, r7 - 80054dc: f85d 7b04 ldr.w r7, [sp], #4 - 80054e0: 4770 bx lr - ... - -080054e4 : +08001a14 : * @brief Return Voltage Scaling Range. * @retval VOS bit field (PWR_REGULATOR_VOLTAGE_SCALE1 or PWR_REGULATOR_VOLTAGE_SCALE2 * or PWR_REGULATOR_VOLTAGE_SCALE1_BOOST when applicable) */ uint32_t HAL_PWREx_GetVoltageRange(void) { - 80054e4: b480 push {r7} - 80054e6: af00 add r7, sp, #0 + 8001a14: b480 push {r7} + 8001a16: af00 add r7, sp, #0 else { return PWR_REGULATOR_VOLTAGE_SCALE1_BOOST; } #else return (PWR->CR1 & PWR_CR1_VOS); - 80054e8: 4b04 ldr r3, [pc, #16] @ (80054fc ) - 80054ea: 681b ldr r3, [r3, #0] - 80054ec: f403 63c0 and.w r3, r3, #1536 @ 0x600 + 8001a18: 4b04 ldr r3, [pc, #16] @ (8001a2c ) + 8001a1a: 681b ldr r3, [r3, #0] + 8001a1c: f403 63c0 and.w r3, r3, #1536 @ 0x600 #endif } - 80054f0: 4618 mov r0, r3 - 80054f2: 46bd mov sp, r7 - 80054f4: f85d 7b04 ldr.w r7, [sp], #4 - 80054f8: 4770 bx lr - 80054fa: bf00 nop - 80054fc: 40007000 .word 0x40007000 + 8001a20: 4618 mov r0, r3 + 8001a22: 46bd mov sp, r7 + 8001a24: f85d 7b04 ldr.w r7, [sp], #4 + 8001a28: 4770 bx lr + 8001a2a: bf00 nop + 8001a2c: 40007000 .word 0x40007000 -08005500 : - * cleared before returning the status. If the flag is not cleared within - * 50 microseconds, HAL_TIMEOUT status is reported. - * @retval HAL Status - */ -HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling) -{ - 8005500: b480 push {r7} - 8005502: b085 sub sp, #20 - 8005504: af00 add r7, sp, #0 - 8005506: 6078 str r0, [r7, #4] - } - -#else - - /* If Set Range 1 */ - if (VoltageScaling == PWR_REGULATOR_VOLTAGE_SCALE1) - 8005508: 687b ldr r3, [r7, #4] - 800550a: f5b3 7f00 cmp.w r3, #512 @ 0x200 - 800550e: d130 bne.n 8005572 - { - if (READ_BIT(PWR->CR1, PWR_CR1_VOS) != PWR_REGULATOR_VOLTAGE_SCALE1) - 8005510: 4b23 ldr r3, [pc, #140] @ (80055a0 ) - 8005512: 681b ldr r3, [r3, #0] - 8005514: f403 63c0 and.w r3, r3, #1536 @ 0x600 - 8005518: f5b3 7f00 cmp.w r3, #512 @ 0x200 - 800551c: d038 beq.n 8005590 - { - /* Set Range 1 */ - MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); - 800551e: 4b20 ldr r3, [pc, #128] @ (80055a0 ) - 8005520: 681b ldr r3, [r3, #0] - 8005522: f423 63c0 bic.w r3, r3, #1536 @ 0x600 - 8005526: 4a1e ldr r2, [pc, #120] @ (80055a0 ) - 8005528: f443 7300 orr.w r3, r3, #512 @ 0x200 - 800552c: 6013 str r3, [r2, #0] - - /* Wait until VOSF is cleared */ - wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000U) + 1U; - 800552e: 4b1d ldr r3, [pc, #116] @ (80055a4 ) - 8005530: 681b ldr r3, [r3, #0] - 8005532: 2232 movs r2, #50 @ 0x32 - 8005534: fb02 f303 mul.w r3, r2, r3 - 8005538: 4a1b ldr r2, [pc, #108] @ (80055a8 ) - 800553a: fba2 2303 umull r2, r3, r2, r3 - 800553e: 0c9b lsrs r3, r3, #18 - 8005540: 3301 adds r3, #1 - 8005542: 60fb str r3, [r7, #12] - while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) - 8005544: e002 b.n 800554c - { - wait_loop_index--; - 8005546: 68fb ldr r3, [r7, #12] - 8005548: 3b01 subs r3, #1 - 800554a: 60fb str r3, [r7, #12] - while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) - 800554c: 4b14 ldr r3, [pc, #80] @ (80055a0 ) - 800554e: 695b ldr r3, [r3, #20] - 8005550: f403 6380 and.w r3, r3, #1024 @ 0x400 - 8005554: f5b3 6f80 cmp.w r3, #1024 @ 0x400 - 8005558: d102 bne.n 8005560 - 800555a: 68fb ldr r3, [r7, #12] - 800555c: 2b00 cmp r3, #0 - 800555e: d1f2 bne.n 8005546 - } - if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) - 8005560: 4b0f ldr r3, [pc, #60] @ (80055a0 ) - 8005562: 695b ldr r3, [r3, #20] - 8005564: f403 6380 and.w r3, r3, #1024 @ 0x400 - 8005568: f5b3 6f80 cmp.w r3, #1024 @ 0x400 - 800556c: d110 bne.n 8005590 - { - return HAL_TIMEOUT; - 800556e: 2303 movs r3, #3 - 8005570: e00f b.n 8005592 - } - } - } - else - { - if (READ_BIT(PWR->CR1, PWR_CR1_VOS) != PWR_REGULATOR_VOLTAGE_SCALE2) - 8005572: 4b0b ldr r3, [pc, #44] @ (80055a0 ) - 8005574: 681b ldr r3, [r3, #0] - 8005576: f403 63c0 and.w r3, r3, #1536 @ 0x600 - 800557a: f5b3 6f80 cmp.w r3, #1024 @ 0x400 - 800557e: d007 beq.n 8005590 - { - /* Set Range 2 */ - MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE2); - 8005580: 4b07 ldr r3, [pc, #28] @ (80055a0 ) - 8005582: 681b ldr r3, [r3, #0] - 8005584: f423 63c0 bic.w r3, r3, #1536 @ 0x600 - 8005588: 4a05 ldr r2, [pc, #20] @ (80055a0 ) - 800558a: f443 6380 orr.w r3, r3, #1024 @ 0x400 - 800558e: 6013 str r3, [r2, #0] - /* No need to wait for VOSF to be cleared for this transition */ - } - } -#endif - - return HAL_OK; - 8005590: 2300 movs r3, #0 -} - 8005592: 4618 mov r0, r3 - 8005594: 3714 adds r7, #20 - 8005596: 46bd mov sp, r7 - 8005598: f85d 7b04 ldr.w r7, [sp], #4 - 800559c: 4770 bx lr - 800559e: bf00 nop - 80055a0: 40007000 .word 0x40007000 - 80055a4: 20000000 .word 0x20000000 - 80055a8: 431bde83 .word 0x431bde83 - -080055ac : +08001a30 : * @note If HSE failed to start, HSE should be disabled before recalling HAL_RCC_OscConfig(). * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { - 80055ac: b580 push {r7, lr} - 80055ae: b088 sub sp, #32 - 80055b0: af00 add r7, sp, #0 - 80055b2: 6078 str r0, [r7, #4] + 8001a30: b580 push {r7, lr} + 8001a32: b088 sub sp, #32 + 8001a34: af00 add r7, sp, #0 + 8001a36: 6078 str r0, [r7, #4] uint32_t tickstart; HAL_StatusTypeDef status; uint32_t sysclk_source, pll_config; /* Check Null pointer */ if(RCC_OscInitStruct == NULL) - 80055b4: 687b ldr r3, [r7, #4] - 80055b6: 2b00 cmp r3, #0 - 80055b8: d102 bne.n 80055c0 + 8001a38: 687b ldr r3, [r7, #4] + 8001a3a: 2b00 cmp r3, #0 + 8001a3c: d102 bne.n 8001a44 { return HAL_ERROR; - 80055ba: 2301 movs r3, #1 - 80055bc: f000 bc02 b.w 8005dc4 + 8001a3e: 2301 movs r3, #1 + 8001a40: f000 bc02 b.w 8002248 } /* Check the parameters */ assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE(); - 80055c0: 4b96 ldr r3, [pc, #600] @ (800581c ) - 80055c2: 689b ldr r3, [r3, #8] - 80055c4: f003 030c and.w r3, r3, #12 - 80055c8: 61bb str r3, [r7, #24] + 8001a44: 4b96 ldr r3, [pc, #600] @ (8001ca0 ) + 8001a46: 689b ldr r3, [r3, #8] + 8001a48: f003 030c and.w r3, r3, #12 + 8001a4c: 61bb str r3, [r7, #24] pll_config = __HAL_RCC_GET_PLL_OSCSOURCE(); - 80055ca: 4b94 ldr r3, [pc, #592] @ (800581c ) - 80055cc: 68db ldr r3, [r3, #12] - 80055ce: f003 0303 and.w r3, r3, #3 - 80055d2: 617b str r3, [r7, #20] + 8001a4e: 4b94 ldr r3, [pc, #592] @ (8001ca0 ) + 8001a50: 68db ldr r3, [r3, #12] + 8001a52: f003 0303 and.w r3, r3, #3 + 8001a56: 617b str r3, [r7, #20] /*----------------------------- MSI Configuration --------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI) - 80055d4: 687b ldr r3, [r7, #4] - 80055d6: 681b ldr r3, [r3, #0] - 80055d8: f003 0310 and.w r3, r3, #16 - 80055dc: 2b00 cmp r3, #0 - 80055de: f000 80e4 beq.w 80057aa + 8001a58: 687b ldr r3, [r7, #4] + 8001a5a: 681b ldr r3, [r3, #0] + 8001a5c: f003 0310 and.w r3, r3, #16 + 8001a60: 2b00 cmp r3, #0 + 8001a62: f000 80e4 beq.w 8001c2e assert_param(IS_RCC_MSI(RCC_OscInitStruct->MSIState)); assert_param(IS_RCC_MSICALIBRATION_VALUE(RCC_OscInitStruct->MSICalibrationValue)); assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); /* Check if MSI is used as system clock or as PLL source when PLL is selected as system clock */ if((sysclk_source == RCC_CFGR_SWS_MSI) || - 80055e2: 69bb ldr r3, [r7, #24] - 80055e4: 2b00 cmp r3, #0 - 80055e6: d007 beq.n 80055f8 - 80055e8: 69bb ldr r3, [r7, #24] - 80055ea: 2b0c cmp r3, #12 - 80055ec: f040 808b bne.w 8005706 + 8001a66: 69bb ldr r3, [r7, #24] + 8001a68: 2b00 cmp r3, #0 + 8001a6a: d007 beq.n 8001a7c + 8001a6c: 69bb ldr r3, [r7, #24] + 8001a6e: 2b0c cmp r3, #12 + 8001a70: f040 808b bne.w 8001b8a ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_config == RCC_PLLSOURCE_MSI))) - 80055f0: 697b ldr r3, [r7, #20] - 80055f2: 2b01 cmp r3, #1 - 80055f4: f040 8087 bne.w 8005706 + 8001a74: 697b ldr r3, [r7, #20] + 8001a76: 2b01 cmp r3, #1 + 8001a78: f040 8087 bne.w 8001b8a { if((READ_BIT(RCC->CR, RCC_CR_MSIRDY) != 0U) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)) - 80055f8: 4b88 ldr r3, [pc, #544] @ (800581c ) - 80055fa: 681b ldr r3, [r3, #0] - 80055fc: f003 0302 and.w r3, r3, #2 - 8005600: 2b00 cmp r3, #0 - 8005602: d005 beq.n 8005610 - 8005604: 687b ldr r3, [r7, #4] - 8005606: 699b ldr r3, [r3, #24] - 8005608: 2b00 cmp r3, #0 - 800560a: d101 bne.n 8005610 + 8001a7c: 4b88 ldr r3, [pc, #544] @ (8001ca0 ) + 8001a7e: 681b ldr r3, [r3, #0] + 8001a80: f003 0302 and.w r3, r3, #2 + 8001a84: 2b00 cmp r3, #0 + 8001a86: d005 beq.n 8001a94 + 8001a88: 687b ldr r3, [r7, #4] + 8001a8a: 699b ldr r3, [r3, #24] + 8001a8c: 2b00 cmp r3, #0 + 8001a8e: d101 bne.n 8001a94 { return HAL_ERROR; - 800560c: 2301 movs r3, #1 - 800560e: e3d9 b.n 8005dc4 + 8001a90: 2301 movs r3, #1 + 8001a92: e3d9 b.n 8002248 else { /* 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. */ if(RCC_OscInitStruct->MSIClockRange > __HAL_RCC_GET_MSI_RANGE()) - 8005610: 687b ldr r3, [r7, #4] - 8005612: 6a1a ldr r2, [r3, #32] - 8005614: 4b81 ldr r3, [pc, #516] @ (800581c ) - 8005616: 681b ldr r3, [r3, #0] - 8005618: f003 0308 and.w r3, r3, #8 - 800561c: 2b00 cmp r3, #0 - 800561e: d004 beq.n 800562a - 8005620: 4b7e ldr r3, [pc, #504] @ (800581c ) - 8005622: 681b ldr r3, [r3, #0] - 8005624: f003 03f0 and.w r3, r3, #240 @ 0xf0 - 8005628: e005 b.n 8005636 - 800562a: 4b7c ldr r3, [pc, #496] @ (800581c ) - 800562c: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 - 8005630: 091b lsrs r3, r3, #4 - 8005632: f003 03f0 and.w r3, r3, #240 @ 0xf0 - 8005636: 4293 cmp r3, r2 - 8005638: d223 bcs.n 8005682 + 8001a94: 687b ldr r3, [r7, #4] + 8001a96: 6a1a ldr r2, [r3, #32] + 8001a98: 4b81 ldr r3, [pc, #516] @ (8001ca0 ) + 8001a9a: 681b ldr r3, [r3, #0] + 8001a9c: f003 0308 and.w r3, r3, #8 + 8001aa0: 2b00 cmp r3, #0 + 8001aa2: d004 beq.n 8001aae + 8001aa4: 4b7e ldr r3, [pc, #504] @ (8001ca0 ) + 8001aa6: 681b ldr r3, [r3, #0] + 8001aa8: f003 03f0 and.w r3, r3, #240 @ 0xf0 + 8001aac: e005 b.n 8001aba + 8001aae: 4b7c ldr r3, [pc, #496] @ (8001ca0 ) + 8001ab0: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 8001ab4: 091b lsrs r3, r3, #4 + 8001ab6: f003 03f0 and.w r3, r3, #240 @ 0xf0 + 8001aba: 4293 cmp r3, r2 + 8001abc: d223 bcs.n 8001b06 { /* First increase number of wait states update if necessary */ if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) - 800563a: 687b ldr r3, [r7, #4] - 800563c: 6a1b ldr r3, [r3, #32] - 800563e: 4618 mov r0, r3 - 8005640: f000 fd8c bl 800615c - 8005644: 4603 mov r3, r0 - 8005646: 2b00 cmp r3, #0 - 8005648: d001 beq.n 800564e + 8001abe: 687b ldr r3, [r7, #4] + 8001ac0: 6a1b ldr r3, [r3, #32] + 8001ac2: 4618 mov r0, r3 + 8001ac4: f000 fd54 bl 8002570 + 8001ac8: 4603 mov r3, r0 + 8001aca: 2b00 cmp r3, #0 + 8001acc: d001 beq.n 8001ad2 { return HAL_ERROR; - 800564a: 2301 movs r3, #1 - 800564c: e3ba b.n 8005dc4 + 8001ace: 2301 movs r3, #1 + 8001ad0: e3ba b.n 8002248 } /* Selects the Multiple Speed oscillator (MSI) clock range .*/ __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 800564e: 4b73 ldr r3, [pc, #460] @ (800581c ) - 8005650: 681b ldr r3, [r3, #0] - 8005652: 4a72 ldr r2, [pc, #456] @ (800581c ) - 8005654: f043 0308 orr.w r3, r3, #8 - 8005658: 6013 str r3, [r2, #0] - 800565a: 4b70 ldr r3, [pc, #448] @ (800581c ) - 800565c: 681b ldr r3, [r3, #0] - 800565e: f023 02f0 bic.w r2, r3, #240 @ 0xf0 - 8005662: 687b ldr r3, [r7, #4] - 8005664: 6a1b ldr r3, [r3, #32] - 8005666: 496d ldr r1, [pc, #436] @ (800581c ) - 8005668: 4313 orrs r3, r2 - 800566a: 600b str r3, [r1, #0] + 8001ad2: 4b73 ldr r3, [pc, #460] @ (8001ca0 ) + 8001ad4: 681b ldr r3, [r3, #0] + 8001ad6: 4a72 ldr r2, [pc, #456] @ (8001ca0 ) + 8001ad8: f043 0308 orr.w r3, r3, #8 + 8001adc: 6013 str r3, [r2, #0] + 8001ade: 4b70 ldr r3, [pc, #448] @ (8001ca0 ) + 8001ae0: 681b ldr r3, [r3, #0] + 8001ae2: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 8001ae6: 687b ldr r3, [r7, #4] + 8001ae8: 6a1b ldr r3, [r3, #32] + 8001aea: 496d ldr r1, [pc, #436] @ (8001ca0 ) + 8001aec: 4313 orrs r3, r2 + 8001aee: 600b str r3, [r1, #0] /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 800566c: 4b6b ldr r3, [pc, #428] @ (800581c ) - 800566e: 685b ldr r3, [r3, #4] - 8005670: f423 427f bic.w r2, r3, #65280 @ 0xff00 - 8005674: 687b ldr r3, [r7, #4] - 8005676: 69db ldr r3, [r3, #28] - 8005678: 021b lsls r3, r3, #8 - 800567a: 4968 ldr r1, [pc, #416] @ (800581c ) - 800567c: 4313 orrs r3, r2 - 800567e: 604b str r3, [r1, #4] - 8005680: e025 b.n 80056ce + 8001af0: 4b6b ldr r3, [pc, #428] @ (8001ca0 ) + 8001af2: 685b ldr r3, [r3, #4] + 8001af4: f423 427f bic.w r2, r3, #65280 @ 0xff00 + 8001af8: 687b ldr r3, [r7, #4] + 8001afa: 69db ldr r3, [r3, #28] + 8001afc: 021b lsls r3, r3, #8 + 8001afe: 4968 ldr r1, [pc, #416] @ (8001ca0 ) + 8001b00: 4313 orrs r3, r2 + 8001b02: 604b str r3, [r1, #4] + 8001b04: e025 b.n 8001b52 } else { /* Else, keep current flash latency while decreasing applies */ /* Selects the Multiple Speed oscillator (MSI) clock range .*/ __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 8005682: 4b66 ldr r3, [pc, #408] @ (800581c ) - 8005684: 681b ldr r3, [r3, #0] - 8005686: 4a65 ldr r2, [pc, #404] @ (800581c ) - 8005688: f043 0308 orr.w r3, r3, #8 - 800568c: 6013 str r3, [r2, #0] - 800568e: 4b63 ldr r3, [pc, #396] @ (800581c ) - 8005690: 681b ldr r3, [r3, #0] - 8005692: f023 02f0 bic.w r2, r3, #240 @ 0xf0 - 8005696: 687b ldr r3, [r7, #4] - 8005698: 6a1b ldr r3, [r3, #32] - 800569a: 4960 ldr r1, [pc, #384] @ (800581c ) - 800569c: 4313 orrs r3, r2 - 800569e: 600b str r3, [r1, #0] + 8001b06: 4b66 ldr r3, [pc, #408] @ (8001ca0 ) + 8001b08: 681b ldr r3, [r3, #0] + 8001b0a: 4a65 ldr r2, [pc, #404] @ (8001ca0 ) + 8001b0c: f043 0308 orr.w r3, r3, #8 + 8001b10: 6013 str r3, [r2, #0] + 8001b12: 4b63 ldr r3, [pc, #396] @ (8001ca0 ) + 8001b14: 681b ldr r3, [r3, #0] + 8001b16: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 8001b1a: 687b ldr r3, [r7, #4] + 8001b1c: 6a1b ldr r3, [r3, #32] + 8001b1e: 4960 ldr r1, [pc, #384] @ (8001ca0 ) + 8001b20: 4313 orrs r3, r2 + 8001b22: 600b str r3, [r1, #0] /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 80056a0: 4b5e ldr r3, [pc, #376] @ (800581c ) - 80056a2: 685b ldr r3, [r3, #4] - 80056a4: f423 427f bic.w r2, r3, #65280 @ 0xff00 - 80056a8: 687b ldr r3, [r7, #4] - 80056aa: 69db ldr r3, [r3, #28] - 80056ac: 021b lsls r3, r3, #8 - 80056ae: 495b ldr r1, [pc, #364] @ (800581c ) - 80056b0: 4313 orrs r3, r2 - 80056b2: 604b str r3, [r1, #4] + 8001b24: 4b5e ldr r3, [pc, #376] @ (8001ca0 ) + 8001b26: 685b ldr r3, [r3, #4] + 8001b28: f423 427f bic.w r2, r3, #65280 @ 0xff00 + 8001b2c: 687b ldr r3, [r7, #4] + 8001b2e: 69db ldr r3, [r3, #28] + 8001b30: 021b lsls r3, r3, #8 + 8001b32: 495b ldr r1, [pc, #364] @ (8001ca0 ) + 8001b34: 4313 orrs r3, r2 + 8001b36: 604b str r3, [r1, #4] /* Decrease number of wait states update if necessary */ /* Only possible when MSI is the System clock source */ if(sysclk_source == RCC_CFGR_SWS_MSI) - 80056b4: 69bb ldr r3, [r7, #24] - 80056b6: 2b00 cmp r3, #0 - 80056b8: d109 bne.n 80056ce + 8001b38: 69bb ldr r3, [r7, #24] + 8001b3a: 2b00 cmp r3, #0 + 8001b3c: d109 bne.n 8001b52 { if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) - 80056ba: 687b ldr r3, [r7, #4] - 80056bc: 6a1b ldr r3, [r3, #32] - 80056be: 4618 mov r0, r3 - 80056c0: f000 fd4c bl 800615c - 80056c4: 4603 mov r3, r0 - 80056c6: 2b00 cmp r3, #0 - 80056c8: d001 beq.n 80056ce + 8001b3e: 687b ldr r3, [r7, #4] + 8001b40: 6a1b ldr r3, [r3, #32] + 8001b42: 4618 mov r0, r3 + 8001b44: f000 fd14 bl 8002570 + 8001b48: 4603 mov r3, r0 + 8001b4a: 2b00 cmp r3, #0 + 8001b4c: d001 beq.n 8001b52 { return HAL_ERROR; - 80056ca: 2301 movs r3, #1 - 80056cc: e37a b.n 8005dc4 + 8001b4e: 2301 movs r3, #1 + 8001b50: e37a b.n 8002248 } } } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> (AHBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos] & 0x1FU); - 80056ce: f000 fc81 bl 8005fd4 - 80056d2: 4602 mov r2, r0 - 80056d4: 4b51 ldr r3, [pc, #324] @ (800581c ) - 80056d6: 689b ldr r3, [r3, #8] - 80056d8: 091b lsrs r3, r3, #4 - 80056da: f003 030f and.w r3, r3, #15 - 80056de: 4950 ldr r1, [pc, #320] @ (8005820 ) - 80056e0: 5ccb ldrb r3, [r1, r3] - 80056e2: f003 031f and.w r3, r3, #31 - 80056e6: fa22 f303 lsr.w r3, r2, r3 - 80056ea: 4a4e ldr r2, [pc, #312] @ (8005824 ) - 80056ec: 6013 str r3, [r2, #0] + 8001b52: f000 fc81 bl 8002458 + 8001b56: 4602 mov r2, r0 + 8001b58: 4b51 ldr r3, [pc, #324] @ (8001ca0 ) + 8001b5a: 689b ldr r3, [r3, #8] + 8001b5c: 091b lsrs r3, r3, #4 + 8001b5e: f003 030f and.w r3, r3, #15 + 8001b62: 4950 ldr r1, [pc, #320] @ (8001ca4 ) + 8001b64: 5ccb ldrb r3, [r1, r3] + 8001b66: f003 031f and.w r3, r3, #31 + 8001b6a: fa22 f303 lsr.w r3, r2, r3 + 8001b6e: 4a4e ldr r2, [pc, #312] @ (8001ca8 ) + 8001b70: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ status = HAL_InitTick(uwTickPrio); - 80056ee: 4b4e ldr r3, [pc, #312] @ (8005828 ) - 80056f0: 681b ldr r3, [r3, #0] - 80056f2: 4618 mov r0, r3 - 80056f4: f7fe fcc2 bl 800407c - 80056f8: 4603 mov r3, r0 - 80056fa: 73fb strb r3, [r7, #15] + 8001b72: 4b4e ldr r3, [pc, #312] @ (8001cac ) + 8001b74: 681b ldr r3, [r3, #0] + 8001b76: 4618 mov r0, r3 + 8001b78: f7ff fc54 bl 8001424 + 8001b7c: 4603 mov r3, r0 + 8001b7e: 73fb strb r3, [r7, #15] if(status != HAL_OK) - 80056fc: 7bfb ldrb r3, [r7, #15] - 80056fe: 2b00 cmp r3, #0 - 8005700: d052 beq.n 80057a8 + 8001b80: 7bfb ldrb r3, [r7, #15] + 8001b82: 2b00 cmp r3, #0 + 8001b84: d052 beq.n 8001c2c { return status; - 8005702: 7bfb ldrb r3, [r7, #15] - 8005704: e35e b.n 8005dc4 + 8001b86: 7bfb ldrb r3, [r7, #15] + 8001b88: e35e b.n 8002248 } } else { /* Check the MSI State */ if(RCC_OscInitStruct->MSIState != RCC_MSI_OFF) - 8005706: 687b ldr r3, [r7, #4] - 8005708: 699b ldr r3, [r3, #24] - 800570a: 2b00 cmp r3, #0 - 800570c: d032 beq.n 8005774 + 8001b8a: 687b ldr r3, [r7, #4] + 8001b8c: 699b ldr r3, [r3, #24] + 8001b8e: 2b00 cmp r3, #0 + 8001b90: d032 beq.n 8001bf8 { /* Enable the Internal High Speed oscillator (MSI). */ __HAL_RCC_MSI_ENABLE(); - 800570e: 4b43 ldr r3, [pc, #268] @ (800581c ) - 8005710: 681b ldr r3, [r3, #0] - 8005712: 4a42 ldr r2, [pc, #264] @ (800581c ) - 8005714: f043 0301 orr.w r3, r3, #1 - 8005718: 6013 str r3, [r2, #0] + 8001b92: 4b43 ldr r3, [pc, #268] @ (8001ca0 ) + 8001b94: 681b ldr r3, [r3, #0] + 8001b96: 4a42 ldr r2, [pc, #264] @ (8001ca0 ) + 8001b98: f043 0301 orr.w r3, r3, #1 + 8001b9c: 6013 str r3, [r2, #0] /* Get timeout */ tickstart = HAL_GetTick(); - 800571a: f7fe fcff bl 800411c - 800571e: 6138 str r0, [r7, #16] + 8001b9e: f7ff fc91 bl 80014c4 + 8001ba2: 6138 str r0, [r7, #16] /* Wait till MSI is ready */ while(READ_BIT(RCC->CR, RCC_CR_MSIRDY) == 0U) - 8005720: e008 b.n 8005734 + 8001ba4: e008 b.n 8001bb8 { if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) - 8005722: f7fe fcfb bl 800411c - 8005726: 4602 mov r2, r0 - 8005728: 693b ldr r3, [r7, #16] - 800572a: 1ad3 subs r3, r2, r3 - 800572c: 2b02 cmp r3, #2 - 800572e: d901 bls.n 8005734 + 8001ba6: f7ff fc8d bl 80014c4 + 8001baa: 4602 mov r2, r0 + 8001bac: 693b ldr r3, [r7, #16] + 8001bae: 1ad3 subs r3, r2, r3 + 8001bb0: 2b02 cmp r3, #2 + 8001bb2: d901 bls.n 8001bb8 { return HAL_TIMEOUT; - 8005730: 2303 movs r3, #3 - 8005732: e347 b.n 8005dc4 + 8001bb4: 2303 movs r3, #3 + 8001bb6: e347 b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_MSIRDY) == 0U) - 8005734: 4b39 ldr r3, [pc, #228] @ (800581c ) - 8005736: 681b ldr r3, [r3, #0] - 8005738: f003 0302 and.w r3, r3, #2 - 800573c: 2b00 cmp r3, #0 - 800573e: d0f0 beq.n 8005722 + 8001bb8: 4b39 ldr r3, [pc, #228] @ (8001ca0 ) + 8001bba: 681b ldr r3, [r3, #0] + 8001bbc: f003 0302 and.w r3, r3, #2 + 8001bc0: 2b00 cmp r3, #0 + 8001bc2: d0f0 beq.n 8001ba6 } } /* Selects the Multiple Speed oscillator (MSI) clock range .*/ __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 8005740: 4b36 ldr r3, [pc, #216] @ (800581c ) - 8005742: 681b ldr r3, [r3, #0] - 8005744: 4a35 ldr r2, [pc, #212] @ (800581c ) - 8005746: f043 0308 orr.w r3, r3, #8 - 800574a: 6013 str r3, [r2, #0] - 800574c: 4b33 ldr r3, [pc, #204] @ (800581c ) - 800574e: 681b ldr r3, [r3, #0] - 8005750: f023 02f0 bic.w r2, r3, #240 @ 0xf0 - 8005754: 687b ldr r3, [r7, #4] - 8005756: 6a1b ldr r3, [r3, #32] - 8005758: 4930 ldr r1, [pc, #192] @ (800581c ) - 800575a: 4313 orrs r3, r2 - 800575c: 600b str r3, [r1, #0] + 8001bc4: 4b36 ldr r3, [pc, #216] @ (8001ca0 ) + 8001bc6: 681b ldr r3, [r3, #0] + 8001bc8: 4a35 ldr r2, [pc, #212] @ (8001ca0 ) + 8001bca: f043 0308 orr.w r3, r3, #8 + 8001bce: 6013 str r3, [r2, #0] + 8001bd0: 4b33 ldr r3, [pc, #204] @ (8001ca0 ) + 8001bd2: 681b ldr r3, [r3, #0] + 8001bd4: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 8001bd8: 687b ldr r3, [r7, #4] + 8001bda: 6a1b ldr r3, [r3, #32] + 8001bdc: 4930 ldr r1, [pc, #192] @ (8001ca0 ) + 8001bde: 4313 orrs r3, r2 + 8001be0: 600b str r3, [r1, #0] /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 800575e: 4b2f ldr r3, [pc, #188] @ (800581c ) - 8005760: 685b ldr r3, [r3, #4] - 8005762: f423 427f bic.w r2, r3, #65280 @ 0xff00 - 8005766: 687b ldr r3, [r7, #4] - 8005768: 69db ldr r3, [r3, #28] - 800576a: 021b lsls r3, r3, #8 - 800576c: 492b ldr r1, [pc, #172] @ (800581c ) - 800576e: 4313 orrs r3, r2 - 8005770: 604b str r3, [r1, #4] - 8005772: e01a b.n 80057aa + 8001be2: 4b2f ldr r3, [pc, #188] @ (8001ca0 ) + 8001be4: 685b ldr r3, [r3, #4] + 8001be6: f423 427f bic.w r2, r3, #65280 @ 0xff00 + 8001bea: 687b ldr r3, [r7, #4] + 8001bec: 69db ldr r3, [r3, #28] + 8001bee: 021b lsls r3, r3, #8 + 8001bf0: 492b ldr r1, [pc, #172] @ (8001ca0 ) + 8001bf2: 4313 orrs r3, r2 + 8001bf4: 604b str r3, [r1, #4] + 8001bf6: e01a b.n 8001c2e } else { /* Disable the Internal High Speed oscillator (MSI). */ __HAL_RCC_MSI_DISABLE(); - 8005774: 4b29 ldr r3, [pc, #164] @ (800581c ) - 8005776: 681b ldr r3, [r3, #0] - 8005778: 4a28 ldr r2, [pc, #160] @ (800581c ) - 800577a: f023 0301 bic.w r3, r3, #1 - 800577e: 6013 str r3, [r2, #0] + 8001bf8: 4b29 ldr r3, [pc, #164] @ (8001ca0 ) + 8001bfa: 681b ldr r3, [r3, #0] + 8001bfc: 4a28 ldr r2, [pc, #160] @ (8001ca0 ) + 8001bfe: f023 0301 bic.w r3, r3, #1 + 8001c02: 6013 str r3, [r2, #0] /* Get timeout */ tickstart = HAL_GetTick(); - 8005780: f7fe fccc bl 800411c - 8005784: 6138 str r0, [r7, #16] + 8001c04: f7ff fc5e bl 80014c4 + 8001c08: 6138 str r0, [r7, #16] /* Wait till MSI is ready */ while(READ_BIT(RCC->CR, RCC_CR_MSIRDY) != 0U) - 8005786: e008 b.n 800579a + 8001c0a: e008 b.n 8001c1e { if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) - 8005788: f7fe fcc8 bl 800411c - 800578c: 4602 mov r2, r0 - 800578e: 693b ldr r3, [r7, #16] - 8005790: 1ad3 subs r3, r2, r3 - 8005792: 2b02 cmp r3, #2 - 8005794: d901 bls.n 800579a + 8001c0c: f7ff fc5a bl 80014c4 + 8001c10: 4602 mov r2, r0 + 8001c12: 693b ldr r3, [r7, #16] + 8001c14: 1ad3 subs r3, r2, r3 + 8001c16: 2b02 cmp r3, #2 + 8001c18: d901 bls.n 8001c1e { return HAL_TIMEOUT; - 8005796: 2303 movs r3, #3 - 8005798: e314 b.n 8005dc4 + 8001c1a: 2303 movs r3, #3 + 8001c1c: e314 b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_MSIRDY) != 0U) - 800579a: 4b20 ldr r3, [pc, #128] @ (800581c ) - 800579c: 681b ldr r3, [r3, #0] - 800579e: f003 0302 and.w r3, r3, #2 - 80057a2: 2b00 cmp r3, #0 - 80057a4: d1f0 bne.n 8005788 - 80057a6: e000 b.n 80057aa + 8001c1e: 4b20 ldr r3, [pc, #128] @ (8001ca0 ) + 8001c20: 681b ldr r3, [r3, #0] + 8001c22: f003 0302 and.w r3, r3, #2 + 8001c26: 2b00 cmp r3, #0 + 8001c28: d1f0 bne.n 8001c0c + 8001c2a: e000 b.n 8001c2e if((READ_BIT(RCC->CR, RCC_CR_MSIRDY) != 0U) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)) - 80057a8: bf00 nop + 8001c2c: bf00 nop } } } } /*------------------------------- HSE Configuration ------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) - 80057aa: 687b ldr r3, [r7, #4] - 80057ac: 681b ldr r3, [r3, #0] - 80057ae: f003 0301 and.w r3, r3, #1 - 80057b2: 2b00 cmp r3, #0 - 80057b4: d073 beq.n 800589e + 8001c2e: 687b ldr r3, [r7, #4] + 8001c30: 681b ldr r3, [r3, #0] + 8001c32: f003 0301 and.w r3, r3, #1 + 8001c36: 2b00 cmp r3, #0 + 8001c38: d073 beq.n 8001d22 { /* Check the parameters */ assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowed to be disabled */ if((sysclk_source == RCC_CFGR_SWS_HSE) || - 80057b6: 69bb ldr r3, [r7, #24] - 80057b8: 2b08 cmp r3, #8 - 80057ba: d005 beq.n 80057c8 - 80057bc: 69bb ldr r3, [r7, #24] - 80057be: 2b0c cmp r3, #12 - 80057c0: d10e bne.n 80057e0 + 8001c3a: 69bb ldr r3, [r7, #24] + 8001c3c: 2b08 cmp r3, #8 + 8001c3e: d005 beq.n 8001c4c + 8001c40: 69bb ldr r3, [r7, #24] + 8001c42: 2b0c cmp r3, #12 + 8001c44: d10e bne.n 8001c64 ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_config == RCC_PLLSOURCE_HSE))) - 80057c2: 697b ldr r3, [r7, #20] - 80057c4: 2b03 cmp r3, #3 - 80057c6: d10b bne.n 80057e0 + 8001c46: 697b ldr r3, [r7, #20] + 8001c48: 2b03 cmp r3, #3 + 8001c4a: d10b bne.n 8001c64 { if((READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 80057c8: 4b14 ldr r3, [pc, #80] @ (800581c ) - 80057ca: 681b ldr r3, [r3, #0] - 80057cc: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 80057d0: 2b00 cmp r3, #0 - 80057d2: d063 beq.n 800589c - 80057d4: 687b ldr r3, [r7, #4] - 80057d6: 685b ldr r3, [r3, #4] - 80057d8: 2b00 cmp r3, #0 - 80057da: d15f bne.n 800589c + 8001c4c: 4b14 ldr r3, [pc, #80] @ (8001ca0 ) + 8001c4e: 681b ldr r3, [r3, #0] + 8001c50: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8001c54: 2b00 cmp r3, #0 + 8001c56: d063 beq.n 8001d20 + 8001c58: 687b ldr r3, [r7, #4] + 8001c5a: 685b ldr r3, [r3, #4] + 8001c5c: 2b00 cmp r3, #0 + 8001c5e: d15f bne.n 8001d20 { return HAL_ERROR; - 80057dc: 2301 movs r3, #1 - 80057de: e2f1 b.n 8005dc4 + 8001c60: 2301 movs r3, #1 + 8001c62: e2f1 b.n 8002248 } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); - 80057e0: 687b ldr r3, [r7, #4] - 80057e2: 685b ldr r3, [r3, #4] - 80057e4: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 - 80057e8: d106 bne.n 80057f8 - 80057ea: 4b0c ldr r3, [pc, #48] @ (800581c ) - 80057ec: 681b ldr r3, [r3, #0] - 80057ee: 4a0b ldr r2, [pc, #44] @ (800581c ) - 80057f0: f443 3380 orr.w r3, r3, #65536 @ 0x10000 - 80057f4: 6013 str r3, [r2, #0] - 80057f6: e025 b.n 8005844 - 80057f8: 687b ldr r3, [r7, #4] - 80057fa: 685b ldr r3, [r3, #4] - 80057fc: f5b3 2fa0 cmp.w r3, #327680 @ 0x50000 - 8005800: d114 bne.n 800582c - 8005802: 4b06 ldr r3, [pc, #24] @ (800581c ) - 8005804: 681b ldr r3, [r3, #0] - 8005806: 4a05 ldr r2, [pc, #20] @ (800581c ) - 8005808: f443 2380 orr.w r3, r3, #262144 @ 0x40000 - 800580c: 6013 str r3, [r2, #0] - 800580e: 4b03 ldr r3, [pc, #12] @ (800581c ) - 8005810: 681b ldr r3, [r3, #0] - 8005812: 4a02 ldr r2, [pc, #8] @ (800581c ) - 8005814: f443 3380 orr.w r3, r3, #65536 @ 0x10000 - 8005818: 6013 str r3, [r2, #0] - 800581a: e013 b.n 8005844 - 800581c: 40021000 .word 0x40021000 - 8005820: 0800b93c .word 0x0800b93c - 8005824: 20000000 .word 0x20000000 - 8005828: 20000004 .word 0x20000004 - 800582c: 4ba0 ldr r3, [pc, #640] @ (8005ab0 ) - 800582e: 681b ldr r3, [r3, #0] - 8005830: 4a9f ldr r2, [pc, #636] @ (8005ab0 ) - 8005832: f423 3380 bic.w r3, r3, #65536 @ 0x10000 - 8005836: 6013 str r3, [r2, #0] - 8005838: 4b9d ldr r3, [pc, #628] @ (8005ab0 ) - 800583a: 681b ldr r3, [r3, #0] - 800583c: 4a9c ldr r2, [pc, #624] @ (8005ab0 ) - 800583e: f423 2380 bic.w r3, r3, #262144 @ 0x40000 - 8005842: 6013 str r3, [r2, #0] + 8001c64: 687b ldr r3, [r7, #4] + 8001c66: 685b ldr r3, [r3, #4] + 8001c68: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 + 8001c6c: d106 bne.n 8001c7c + 8001c6e: 4b0c ldr r3, [pc, #48] @ (8001ca0 ) + 8001c70: 681b ldr r3, [r3, #0] + 8001c72: 4a0b ldr r2, [pc, #44] @ (8001ca0 ) + 8001c74: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8001c78: 6013 str r3, [r2, #0] + 8001c7a: e025 b.n 8001cc8 + 8001c7c: 687b ldr r3, [r7, #4] + 8001c7e: 685b ldr r3, [r3, #4] + 8001c80: f5b3 2fa0 cmp.w r3, #327680 @ 0x50000 + 8001c84: d114 bne.n 8001cb0 + 8001c86: 4b06 ldr r3, [pc, #24] @ (8001ca0 ) + 8001c88: 681b ldr r3, [r3, #0] + 8001c8a: 4a05 ldr r2, [pc, #20] @ (8001ca0 ) + 8001c8c: f443 2380 orr.w r3, r3, #262144 @ 0x40000 + 8001c90: 6013 str r3, [r2, #0] + 8001c92: 4b03 ldr r3, [pc, #12] @ (8001ca0 ) + 8001c94: 681b ldr r3, [r3, #0] + 8001c96: 4a02 ldr r2, [pc, #8] @ (8001ca0 ) + 8001c98: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8001c9c: 6013 str r3, [r2, #0] + 8001c9e: e013 b.n 8001cc8 + 8001ca0: 40021000 .word 0x40021000 + 8001ca4: 08005648 .word 0x08005648 + 8001ca8: 20000000 .word 0x20000000 + 8001cac: 20000004 .word 0x20000004 + 8001cb0: 4ba0 ldr r3, [pc, #640] @ (8001f34 ) + 8001cb2: 681b ldr r3, [r3, #0] + 8001cb4: 4a9f ldr r2, [pc, #636] @ (8001f34 ) + 8001cb6: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 8001cba: 6013 str r3, [r2, #0] + 8001cbc: 4b9d ldr r3, [pc, #628] @ (8001f34 ) + 8001cbe: 681b ldr r3, [r3, #0] + 8001cc0: 4a9c ldr r2, [pc, #624] @ (8001f34 ) + 8001cc2: f423 2380 bic.w r3, r3, #262144 @ 0x40000 + 8001cc6: 6013 str r3, [r2, #0] /* Check the HSE State */ if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) - 8005844: 687b ldr r3, [r7, #4] - 8005846: 685b ldr r3, [r3, #4] - 8005848: 2b00 cmp r3, #0 - 800584a: d013 beq.n 8005874 + 8001cc8: 687b ldr r3, [r7, #4] + 8001cca: 685b ldr r3, [r3, #4] + 8001ccc: 2b00 cmp r3, #0 + 8001cce: d013 beq.n 8001cf8 { /* Get Start Tick*/ tickstart = HAL_GetTick(); - 800584c: f7fe fc66 bl 800411c - 8005850: 6138 str r0, [r7, #16] + 8001cd0: f7ff fbf8 bl 80014c4 + 8001cd4: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) - 8005852: e008 b.n 8005866 + 8001cd6: e008 b.n 8001cea { if((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) - 8005854: f7fe fc62 bl 800411c - 8005858: 4602 mov r2, r0 - 800585a: 693b ldr r3, [r7, #16] - 800585c: 1ad3 subs r3, r2, r3 - 800585e: 2b64 cmp r3, #100 @ 0x64 - 8005860: d901 bls.n 8005866 + 8001cd8: f7ff fbf4 bl 80014c4 + 8001cdc: 4602 mov r2, r0 + 8001cde: 693b ldr r3, [r7, #16] + 8001ce0: 1ad3 subs r3, r2, r3 + 8001ce2: 2b64 cmp r3, #100 @ 0x64 + 8001ce4: d901 bls.n 8001cea { return HAL_TIMEOUT; - 8005862: 2303 movs r3, #3 - 8005864: e2ae b.n 8005dc4 + 8001ce6: 2303 movs r3, #3 + 8001ce8: e2ae b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) - 8005866: 4b92 ldr r3, [pc, #584] @ (8005ab0 ) - 8005868: 681b ldr r3, [r3, #0] - 800586a: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 800586e: 2b00 cmp r3, #0 - 8005870: d0f0 beq.n 8005854 - 8005872: e014 b.n 800589e + 8001cea: 4b92 ldr r3, [pc, #584] @ (8001f34 ) + 8001cec: 681b ldr r3, [r3, #0] + 8001cee: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8001cf2: 2b00 cmp r3, #0 + 8001cf4: d0f0 beq.n 8001cd8 + 8001cf6: e014 b.n 8001d22 } } else { /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005874: f7fe fc52 bl 800411c - 8005878: 6138 str r0, [r7, #16] + 8001cf8: f7ff fbe4 bl 80014c4 + 8001cfc: 6138 str r0, [r7, #16] /* Wait till HSE is disabled */ while(READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) - 800587a: e008 b.n 800588e + 8001cfe: e008 b.n 8001d12 { if((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) - 800587c: f7fe fc4e bl 800411c - 8005880: 4602 mov r2, r0 - 8005882: 693b ldr r3, [r7, #16] - 8005884: 1ad3 subs r3, r2, r3 - 8005886: 2b64 cmp r3, #100 @ 0x64 - 8005888: d901 bls.n 800588e + 8001d00: f7ff fbe0 bl 80014c4 + 8001d04: 4602 mov r2, r0 + 8001d06: 693b ldr r3, [r7, #16] + 8001d08: 1ad3 subs r3, r2, r3 + 8001d0a: 2b64 cmp r3, #100 @ 0x64 + 8001d0c: d901 bls.n 8001d12 { return HAL_TIMEOUT; - 800588a: 2303 movs r3, #3 - 800588c: e29a b.n 8005dc4 + 8001d0e: 2303 movs r3, #3 + 8001d10: e29a b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) - 800588e: 4b88 ldr r3, [pc, #544] @ (8005ab0 ) - 8005890: 681b ldr r3, [r3, #0] - 8005892: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8005896: 2b00 cmp r3, #0 - 8005898: d1f0 bne.n 800587c - 800589a: e000 b.n 800589e + 8001d12: 4b88 ldr r3, [pc, #544] @ (8001f34 ) + 8001d14: 681b ldr r3, [r3, #0] + 8001d16: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8001d1a: 2b00 cmp r3, #0 + 8001d1c: d1f0 bne.n 8001d00 + 8001d1e: e000 b.n 8001d22 if((READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 800589c: bf00 nop + 8001d20: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) - 800589e: 687b ldr r3, [r7, #4] - 80058a0: 681b ldr r3, [r3, #0] - 80058a2: f003 0302 and.w r3, r3, #2 - 80058a6: 2b00 cmp r3, #0 - 80058a8: d060 beq.n 800596c + 8001d22: 687b ldr r3, [r7, #4] + 8001d24: 681b ldr r3, [r3, #0] + 8001d26: f003 0302 and.w r3, r3, #2 + 8001d2a: 2b00 cmp r3, #0 + 8001d2c: d060 beq.n 8001df0 /* Check the parameters */ assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); assert_param(IS_RCC_HSI_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((sysclk_source == RCC_CFGR_SWS_HSI) || - 80058aa: 69bb ldr r3, [r7, #24] - 80058ac: 2b04 cmp r3, #4 - 80058ae: d005 beq.n 80058bc - 80058b0: 69bb ldr r3, [r7, #24] - 80058b2: 2b0c cmp r3, #12 - 80058b4: d119 bne.n 80058ea + 8001d2e: 69bb ldr r3, [r7, #24] + 8001d30: 2b04 cmp r3, #4 + 8001d32: d005 beq.n 8001d40 + 8001d34: 69bb ldr r3, [r7, #24] + 8001d36: 2b0c cmp r3, #12 + 8001d38: d119 bne.n 8001d6e ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_config == RCC_PLLSOURCE_HSI))) - 80058b6: 697b ldr r3, [r7, #20] - 80058b8: 2b02 cmp r3, #2 - 80058ba: d116 bne.n 80058ea + 8001d3a: 697b ldr r3, [r7, #20] + 8001d3c: 2b02 cmp r3, #2 + 8001d3e: d116 bne.n 8001d6e { /* When HSI is used as system clock it will not be disabled */ if((READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)) - 80058bc: 4b7c ldr r3, [pc, #496] @ (8005ab0 ) - 80058be: 681b ldr r3, [r3, #0] - 80058c0: f403 6380 and.w r3, r3, #1024 @ 0x400 - 80058c4: 2b00 cmp r3, #0 - 80058c6: d005 beq.n 80058d4 - 80058c8: 687b ldr r3, [r7, #4] - 80058ca: 68db ldr r3, [r3, #12] - 80058cc: 2b00 cmp r3, #0 - 80058ce: d101 bne.n 80058d4 + 8001d40: 4b7c ldr r3, [pc, #496] @ (8001f34 ) + 8001d42: 681b ldr r3, [r3, #0] + 8001d44: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8001d48: 2b00 cmp r3, #0 + 8001d4a: d005 beq.n 8001d58 + 8001d4c: 687b ldr r3, [r7, #4] + 8001d4e: 68db ldr r3, [r3, #12] + 8001d50: 2b00 cmp r3, #0 + 8001d52: d101 bne.n 8001d58 { return HAL_ERROR; - 80058d0: 2301 movs r3, #1 - 80058d2: e277 b.n 8005dc4 + 8001d54: 2301 movs r3, #1 + 8001d56: e277 b.n 8002248 } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 80058d4: 4b76 ldr r3, [pc, #472] @ (8005ab0 ) - 80058d6: 685b ldr r3, [r3, #4] - 80058d8: f023 42fe bic.w r2, r3, #2130706432 @ 0x7f000000 - 80058dc: 687b ldr r3, [r7, #4] - 80058de: 691b ldr r3, [r3, #16] - 80058e0: 061b lsls r3, r3, #24 - 80058e2: 4973 ldr r1, [pc, #460] @ (8005ab0 ) - 80058e4: 4313 orrs r3, r2 - 80058e6: 604b str r3, [r1, #4] + 8001d58: 4b76 ldr r3, [pc, #472] @ (8001f34 ) + 8001d5a: 685b ldr r3, [r3, #4] + 8001d5c: f023 42fe bic.w r2, r3, #2130706432 @ 0x7f000000 + 8001d60: 687b ldr r3, [r7, #4] + 8001d62: 691b ldr r3, [r3, #16] + 8001d64: 061b lsls r3, r3, #24 + 8001d66: 4973 ldr r1, [pc, #460] @ (8001f34 ) + 8001d68: 4313 orrs r3, r2 + 8001d6a: 604b str r3, [r1, #4] if((READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)) - 80058e8: e040 b.n 800596c + 8001d6c: e040 b.n 8001df0 } } else { /* Check the HSI State */ if(RCC_OscInitStruct->HSIState != RCC_HSI_OFF) - 80058ea: 687b ldr r3, [r7, #4] - 80058ec: 68db ldr r3, [r3, #12] - 80058ee: 2b00 cmp r3, #0 - 80058f0: d023 beq.n 800593a + 8001d6e: 687b ldr r3, [r7, #4] + 8001d70: 68db ldr r3, [r3, #12] + 8001d72: 2b00 cmp r3, #0 + 8001d74: d023 beq.n 8001dbe { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); - 80058f2: 4b6f ldr r3, [pc, #444] @ (8005ab0 ) - 80058f4: 681b ldr r3, [r3, #0] - 80058f6: 4a6e ldr r2, [pc, #440] @ (8005ab0 ) - 80058f8: f443 7380 orr.w r3, r3, #256 @ 0x100 - 80058fc: 6013 str r3, [r2, #0] + 8001d76: 4b6f ldr r3, [pc, #444] @ (8001f34 ) + 8001d78: 681b ldr r3, [r3, #0] + 8001d7a: 4a6e ldr r2, [pc, #440] @ (8001f34 ) + 8001d7c: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8001d80: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 80058fe: f7fe fc0d bl 800411c - 8005902: 6138 str r0, [r7, #16] + 8001d82: f7ff fb9f bl 80014c4 + 8001d86: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) - 8005904: e008 b.n 8005918 + 8001d88: e008 b.n 8001d9c { if((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) - 8005906: f7fe fc09 bl 800411c - 800590a: 4602 mov r2, r0 - 800590c: 693b ldr r3, [r7, #16] - 800590e: 1ad3 subs r3, r2, r3 - 8005910: 2b02 cmp r3, #2 - 8005912: d901 bls.n 8005918 + 8001d8a: f7ff fb9b bl 80014c4 + 8001d8e: 4602 mov r2, r0 + 8001d90: 693b ldr r3, [r7, #16] + 8001d92: 1ad3 subs r3, r2, r3 + 8001d94: 2b02 cmp r3, #2 + 8001d96: d901 bls.n 8001d9c { return HAL_TIMEOUT; - 8005914: 2303 movs r3, #3 - 8005916: e255 b.n 8005dc4 + 8001d98: 2303 movs r3, #3 + 8001d9a: e255 b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) - 8005918: 4b65 ldr r3, [pc, #404] @ (8005ab0 ) - 800591a: 681b ldr r3, [r3, #0] - 800591c: f403 6380 and.w r3, r3, #1024 @ 0x400 - 8005920: 2b00 cmp r3, #0 - 8005922: d0f0 beq.n 8005906 + 8001d9c: 4b65 ldr r3, [pc, #404] @ (8001f34 ) + 8001d9e: 681b ldr r3, [r3, #0] + 8001da0: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8001da4: 2b00 cmp r3, #0 + 8001da6: d0f0 beq.n 8001d8a } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 8005924: 4b62 ldr r3, [pc, #392] @ (8005ab0 ) - 8005926: 685b ldr r3, [r3, #4] - 8005928: f023 42fe bic.w r2, r3, #2130706432 @ 0x7f000000 - 800592c: 687b ldr r3, [r7, #4] - 800592e: 691b ldr r3, [r3, #16] - 8005930: 061b lsls r3, r3, #24 - 8005932: 495f ldr r1, [pc, #380] @ (8005ab0 ) - 8005934: 4313 orrs r3, r2 - 8005936: 604b str r3, [r1, #4] - 8005938: e018 b.n 800596c + 8001da8: 4b62 ldr r3, [pc, #392] @ (8001f34 ) + 8001daa: 685b ldr r3, [r3, #4] + 8001dac: f023 42fe bic.w r2, r3, #2130706432 @ 0x7f000000 + 8001db0: 687b ldr r3, [r7, #4] + 8001db2: 691b ldr r3, [r3, #16] + 8001db4: 061b lsls r3, r3, #24 + 8001db6: 495f ldr r1, [pc, #380] @ (8001f34 ) + 8001db8: 4313 orrs r3, r2 + 8001dba: 604b str r3, [r1, #4] + 8001dbc: e018 b.n 8001df0 } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); - 800593a: 4b5d ldr r3, [pc, #372] @ (8005ab0 ) - 800593c: 681b ldr r3, [r3, #0] - 800593e: 4a5c ldr r2, [pc, #368] @ (8005ab0 ) - 8005940: f423 7380 bic.w r3, r3, #256 @ 0x100 - 8005944: 6013 str r3, [r2, #0] + 8001dbe: 4b5d ldr r3, [pc, #372] @ (8001f34 ) + 8001dc0: 681b ldr r3, [r3, #0] + 8001dc2: 4a5c ldr r2, [pc, #368] @ (8001f34 ) + 8001dc4: f423 7380 bic.w r3, r3, #256 @ 0x100 + 8001dc8: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005946: f7fe fbe9 bl 800411c - 800594a: 6138 str r0, [r7, #16] + 8001dca: f7ff fb7b bl 80014c4 + 8001dce: 6138 str r0, [r7, #16] /* Wait till HSI is disabled */ while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) - 800594c: e008 b.n 8005960 + 8001dd0: e008 b.n 8001de4 { if((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) - 800594e: f7fe fbe5 bl 800411c - 8005952: 4602 mov r2, r0 - 8005954: 693b ldr r3, [r7, #16] - 8005956: 1ad3 subs r3, r2, r3 - 8005958: 2b02 cmp r3, #2 - 800595a: d901 bls.n 8005960 + 8001dd2: f7ff fb77 bl 80014c4 + 8001dd6: 4602 mov r2, r0 + 8001dd8: 693b ldr r3, [r7, #16] + 8001dda: 1ad3 subs r3, r2, r3 + 8001ddc: 2b02 cmp r3, #2 + 8001dde: d901 bls.n 8001de4 { return HAL_TIMEOUT; - 800595c: 2303 movs r3, #3 - 800595e: e231 b.n 8005dc4 + 8001de0: 2303 movs r3, #3 + 8001de2: e231 b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) - 8005960: 4b53 ldr r3, [pc, #332] @ (8005ab0 ) - 8005962: 681b ldr r3, [r3, #0] - 8005964: f403 6380 and.w r3, r3, #1024 @ 0x400 - 8005968: 2b00 cmp r3, #0 - 800596a: d1f0 bne.n 800594e + 8001de4: 4b53 ldr r3, [pc, #332] @ (8001f34 ) + 8001de6: 681b ldr r3, [r3, #0] + 8001de8: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8001dec: 2b00 cmp r3, #0 + 8001dee: d1f0 bne.n 8001dd2 } } } } /*------------------------------ LSI Configuration -------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) - 800596c: 687b ldr r3, [r7, #4] - 800596e: 681b ldr r3, [r3, #0] - 8005970: f003 0308 and.w r3, r3, #8 - 8005974: 2b00 cmp r3, #0 - 8005976: d03c beq.n 80059f2 + 8001df0: 687b ldr r3, [r7, #4] + 8001df2: 681b ldr r3, [r3, #0] + 8001df4: f003 0308 and.w r3, r3, #8 + 8001df8: 2b00 cmp r3, #0 + 8001dfa: d03c beq.n 8001e76 { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) - 8005978: 687b ldr r3, [r7, #4] - 800597a: 695b ldr r3, [r3, #20] - 800597c: 2b00 cmp r3, #0 - 800597e: d01c beq.n 80059ba + 8001dfc: 687b ldr r3, [r7, #4] + 8001dfe: 695b ldr r3, [r3, #20] + 8001e00: 2b00 cmp r3, #0 + 8001e02: d01c beq.n 8001e3e MODIFY_REG(RCC->CSR, RCC_CSR_LSIPREDIV, RCC_OscInitStruct->LSIDiv); } #endif /* RCC_CSR_LSIPREDIV */ /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); - 8005980: 4b4b ldr r3, [pc, #300] @ (8005ab0 ) - 8005982: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 - 8005986: 4a4a ldr r2, [pc, #296] @ (8005ab0 ) - 8005988: f043 0301 orr.w r3, r3, #1 - 800598c: f8c2 3094 str.w r3, [r2, #148] @ 0x94 + 8001e04: 4b4b ldr r3, [pc, #300] @ (8001f34 ) + 8001e06: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 8001e0a: 4a4a ldr r2, [pc, #296] @ (8001f34 ) + 8001e0c: f043 0301 orr.w r3, r3, #1 + 8001e10: f8c2 3094 str.w r3, [r2, #148] @ 0x94 /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005990: f7fe fbc4 bl 800411c - 8005994: 6138 str r0, [r7, #16] + 8001e14: f7ff fb56 bl 80014c4 + 8001e18: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == 0U) - 8005996: e008 b.n 80059aa + 8001e1a: e008 b.n 8001e2e { if((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) - 8005998: f7fe fbc0 bl 800411c - 800599c: 4602 mov r2, r0 - 800599e: 693b ldr r3, [r7, #16] - 80059a0: 1ad3 subs r3, r2, r3 - 80059a2: 2b02 cmp r3, #2 - 80059a4: d901 bls.n 80059aa + 8001e1c: f7ff fb52 bl 80014c4 + 8001e20: 4602 mov r2, r0 + 8001e22: 693b ldr r3, [r7, #16] + 8001e24: 1ad3 subs r3, r2, r3 + 8001e26: 2b02 cmp r3, #2 + 8001e28: d901 bls.n 8001e2e { return HAL_TIMEOUT; - 80059a6: 2303 movs r3, #3 - 80059a8: e20c b.n 8005dc4 + 8001e2a: 2303 movs r3, #3 + 8001e2c: e20c b.n 8002248 while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == 0U) - 80059aa: 4b41 ldr r3, [pc, #260] @ (8005ab0 ) - 80059ac: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 - 80059b0: f003 0302 and.w r3, r3, #2 - 80059b4: 2b00 cmp r3, #0 - 80059b6: d0ef beq.n 8005998 - 80059b8: e01b b.n 80059f2 + 8001e2e: 4b41 ldr r3, [pc, #260] @ (8001f34 ) + 8001e30: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 8001e34: f003 0302 and.w r3, r3, #2 + 8001e38: 2b00 cmp r3, #0 + 8001e3a: d0ef beq.n 8001e1c + 8001e3c: e01b b.n 8001e76 } } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); - 80059ba: 4b3d ldr r3, [pc, #244] @ (8005ab0 ) - 80059bc: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 - 80059c0: 4a3b ldr r2, [pc, #236] @ (8005ab0 ) - 80059c2: f023 0301 bic.w r3, r3, #1 - 80059c6: f8c2 3094 str.w r3, [r2, #148] @ 0x94 + 8001e3e: 4b3d ldr r3, [pc, #244] @ (8001f34 ) + 8001e40: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 8001e44: 4a3b ldr r2, [pc, #236] @ (8001f34 ) + 8001e46: f023 0301 bic.w r3, r3, #1 + 8001e4a: f8c2 3094 str.w r3, [r2, #148] @ 0x94 /* Get Start Tick*/ tickstart = HAL_GetTick(); - 80059ca: f7fe fba7 bl 800411c - 80059ce: 6138 str r0, [r7, #16] + 8001e4e: f7ff fb39 bl 80014c4 + 8001e52: 6138 str r0, [r7, #16] /* Wait till LSI is disabled */ while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) != 0U) - 80059d0: e008 b.n 80059e4 + 8001e54: e008 b.n 8001e68 { if((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) - 80059d2: f7fe fba3 bl 800411c - 80059d6: 4602 mov r2, r0 - 80059d8: 693b ldr r3, [r7, #16] - 80059da: 1ad3 subs r3, r2, r3 - 80059dc: 2b02 cmp r3, #2 - 80059de: d901 bls.n 80059e4 + 8001e56: f7ff fb35 bl 80014c4 + 8001e5a: 4602 mov r2, r0 + 8001e5c: 693b ldr r3, [r7, #16] + 8001e5e: 1ad3 subs r3, r2, r3 + 8001e60: 2b02 cmp r3, #2 + 8001e62: d901 bls.n 8001e68 { return HAL_TIMEOUT; - 80059e0: 2303 movs r3, #3 - 80059e2: e1ef b.n 8005dc4 + 8001e64: 2303 movs r3, #3 + 8001e66: e1ef b.n 8002248 while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) != 0U) - 80059e4: 4b32 ldr r3, [pc, #200] @ (8005ab0 ) - 80059e6: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 - 80059ea: f003 0302 and.w r3, r3, #2 - 80059ee: 2b00 cmp r3, #0 - 80059f0: d1ef bne.n 80059d2 + 8001e68: 4b32 ldr r3, [pc, #200] @ (8001f34 ) + 8001e6a: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 8001e6e: f003 0302 and.w r3, r3, #2 + 8001e72: 2b00 cmp r3, #0 + 8001e74: d1ef bne.n 8001e56 } } } } /*------------------------------ LSE Configuration -------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) - 80059f2: 687b ldr r3, [r7, #4] - 80059f4: 681b ldr r3, [r3, #0] - 80059f6: f003 0304 and.w r3, r3, #4 - 80059fa: 2b00 cmp r3, #0 - 80059fc: f000 80a6 beq.w 8005b4c + 8001e76: 687b ldr r3, [r7, #4] + 8001e78: 681b ldr r3, [r3, #0] + 8001e7a: f003 0304 and.w r3, r3, #4 + 8001e7e: 2b00 cmp r3, #0 + 8001e80: f000 80a6 beq.w 8001fd0 { FlagStatus pwrclkchanged = RESET; - 8005a00: 2300 movs r3, #0 - 8005a02: 77fb strb r3, [r7, #31] + 8001e84: 2300 movs r3, #0 + 8001e86: 77fb strb r3, [r7, #31] /* 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_IS_BIT_CLR(RCC->APB1ENR1, RCC_APB1ENR1_PWREN)) - 8005a04: 4b2a ldr r3, [pc, #168] @ (8005ab0 ) - 8005a06: 6d9b ldr r3, [r3, #88] @ 0x58 - 8005a08: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 8005a0c: 2b00 cmp r3, #0 - 8005a0e: d10d bne.n 8005a2c + 8001e88: 4b2a ldr r3, [pc, #168] @ (8001f34 ) + 8001e8a: 6d9b ldr r3, [r3, #88] @ 0x58 + 8001e8c: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8001e90: 2b00 cmp r3, #0 + 8001e92: d10d bne.n 8001eb0 { __HAL_RCC_PWR_CLK_ENABLE(); - 8005a10: 4b27 ldr r3, [pc, #156] @ (8005ab0 ) - 8005a12: 6d9b ldr r3, [r3, #88] @ 0x58 - 8005a14: 4a26 ldr r2, [pc, #152] @ (8005ab0 ) - 8005a16: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 - 8005a1a: 6593 str r3, [r2, #88] @ 0x58 - 8005a1c: 4b24 ldr r3, [pc, #144] @ (8005ab0 ) - 8005a1e: 6d9b ldr r3, [r3, #88] @ 0x58 - 8005a20: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 8005a24: 60bb str r3, [r7, #8] - 8005a26: 68bb ldr r3, [r7, #8] + 8001e94: 4b27 ldr r3, [pc, #156] @ (8001f34 ) + 8001e96: 6d9b ldr r3, [r3, #88] @ 0x58 + 8001e98: 4a26 ldr r2, [pc, #152] @ (8001f34 ) + 8001e9a: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8001e9e: 6593 str r3, [r2, #88] @ 0x58 + 8001ea0: 4b24 ldr r3, [pc, #144] @ (8001f34 ) + 8001ea2: 6d9b ldr r3, [r3, #88] @ 0x58 + 8001ea4: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8001ea8: 60bb str r3, [r7, #8] + 8001eaa: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; - 8005a28: 2301 movs r3, #1 - 8005a2a: 77fb strb r3, [r7, #31] + 8001eac: 2301 movs r3, #1 + 8001eae: 77fb strb r3, [r7, #31] } if(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 8005a2c: 4b21 ldr r3, [pc, #132] @ (8005ab4 ) - 8005a2e: 681b ldr r3, [r3, #0] - 8005a30: f403 7380 and.w r3, r3, #256 @ 0x100 - 8005a34: 2b00 cmp r3, #0 - 8005a36: d118 bne.n 8005a6a + 8001eb0: 4b21 ldr r3, [pc, #132] @ (8001f38 ) + 8001eb2: 681b ldr r3, [r3, #0] + 8001eb4: f403 7380 and.w r3, r3, #256 @ 0x100 + 8001eb8: 2b00 cmp r3, #0 + 8001eba: d118 bne.n 8001eee { /* Enable write access to Backup domain */ SET_BIT(PWR->CR1, PWR_CR1_DBP); - 8005a38: 4b1e ldr r3, [pc, #120] @ (8005ab4 ) - 8005a3a: 681b ldr r3, [r3, #0] - 8005a3c: 4a1d ldr r2, [pc, #116] @ (8005ab4 ) - 8005a3e: f443 7380 orr.w r3, r3, #256 @ 0x100 - 8005a42: 6013 str r3, [r2, #0] + 8001ebc: 4b1e ldr r3, [pc, #120] @ (8001f38 ) + 8001ebe: 681b ldr r3, [r3, #0] + 8001ec0: 4a1d ldr r2, [pc, #116] @ (8001f38 ) + 8001ec2: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8001ec6: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); - 8005a44: f7fe fb6a bl 800411c - 8005a48: 6138 str r0, [r7, #16] + 8001ec8: f7ff fafc bl 80014c4 + 8001ecc: 6138 str r0, [r7, #16] while(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 8005a4a: e008 b.n 8005a5e + 8001ece: e008 b.n 8001ee2 { if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 8005a4c: f7fe fb66 bl 800411c - 8005a50: 4602 mov r2, r0 - 8005a52: 693b ldr r3, [r7, #16] - 8005a54: 1ad3 subs r3, r2, r3 - 8005a56: 2b02 cmp r3, #2 - 8005a58: d901 bls.n 8005a5e + 8001ed0: f7ff faf8 bl 80014c4 + 8001ed4: 4602 mov r2, r0 + 8001ed6: 693b ldr r3, [r7, #16] + 8001ed8: 1ad3 subs r3, r2, r3 + 8001eda: 2b02 cmp r3, #2 + 8001edc: d901 bls.n 8001ee2 { return HAL_TIMEOUT; - 8005a5a: 2303 movs r3, #3 - 8005a5c: e1b2 b.n 8005dc4 + 8001ede: 2303 movs r3, #3 + 8001ee0: e1b2 b.n 8002248 while(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 8005a5e: 4b15 ldr r3, [pc, #84] @ (8005ab4 ) - 8005a60: 681b ldr r3, [r3, #0] - 8005a62: f403 7380 and.w r3, r3, #256 @ 0x100 - 8005a66: 2b00 cmp r3, #0 - 8005a68: d0f0 beq.n 8005a4c + 8001ee2: 4b15 ldr r3, [pc, #84] @ (8001f38 ) + 8001ee4: 681b ldr r3, [r3, #0] + 8001ee6: f403 7380 and.w r3, r3, #256 @ 0x100 + 8001eea: 2b00 cmp r3, #0 + 8001eec: d0f0 beq.n 8001ed0 { CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON); CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); } #else __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); - 8005a6a: 687b ldr r3, [r7, #4] - 8005a6c: 689b ldr r3, [r3, #8] - 8005a6e: 2b01 cmp r3, #1 - 8005a70: d108 bne.n 8005a84 - 8005a72: 4b0f ldr r3, [pc, #60] @ (8005ab0 ) - 8005a74: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8005a78: 4a0d ldr r2, [pc, #52] @ (8005ab0 ) - 8005a7a: f043 0301 orr.w r3, r3, #1 - 8005a7e: f8c2 3090 str.w r3, [r2, #144] @ 0x90 - 8005a82: e029 b.n 8005ad8 - 8005a84: 687b ldr r3, [r7, #4] - 8005a86: 689b ldr r3, [r3, #8] - 8005a88: 2b05 cmp r3, #5 - 8005a8a: d115 bne.n 8005ab8 - 8005a8c: 4b08 ldr r3, [pc, #32] @ (8005ab0 ) - 8005a8e: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8005a92: 4a07 ldr r2, [pc, #28] @ (8005ab0 ) - 8005a94: f043 0304 orr.w r3, r3, #4 - 8005a98: f8c2 3090 str.w r3, [r2, #144] @ 0x90 - 8005a9c: 4b04 ldr r3, [pc, #16] @ (8005ab0 ) - 8005a9e: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8005aa2: 4a03 ldr r2, [pc, #12] @ (8005ab0 ) - 8005aa4: f043 0301 orr.w r3, r3, #1 - 8005aa8: f8c2 3090 str.w r3, [r2, #144] @ 0x90 - 8005aac: e014 b.n 8005ad8 - 8005aae: bf00 nop - 8005ab0: 40021000 .word 0x40021000 - 8005ab4: 40007000 .word 0x40007000 - 8005ab8: 4b9a ldr r3, [pc, #616] @ (8005d24 ) - 8005aba: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8005abe: 4a99 ldr r2, [pc, #612] @ (8005d24 ) - 8005ac0: f023 0301 bic.w r3, r3, #1 - 8005ac4: f8c2 3090 str.w r3, [r2, #144] @ 0x90 - 8005ac8: 4b96 ldr r3, [pc, #600] @ (8005d24 ) - 8005aca: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8005ace: 4a95 ldr r2, [pc, #596] @ (8005d24 ) - 8005ad0: f023 0304 bic.w r3, r3, #4 - 8005ad4: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 8001eee: 687b ldr r3, [r7, #4] + 8001ef0: 689b ldr r3, [r3, #8] + 8001ef2: 2b01 cmp r3, #1 + 8001ef4: d108 bne.n 8001f08 + 8001ef6: 4b0f ldr r3, [pc, #60] @ (8001f34 ) + 8001ef8: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8001efc: 4a0d ldr r2, [pc, #52] @ (8001f34 ) + 8001efe: f043 0301 orr.w r3, r3, #1 + 8001f02: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 8001f06: e029 b.n 8001f5c + 8001f08: 687b ldr r3, [r7, #4] + 8001f0a: 689b ldr r3, [r3, #8] + 8001f0c: 2b05 cmp r3, #5 + 8001f0e: d115 bne.n 8001f3c + 8001f10: 4b08 ldr r3, [pc, #32] @ (8001f34 ) + 8001f12: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8001f16: 4a07 ldr r2, [pc, #28] @ (8001f34 ) + 8001f18: f043 0304 orr.w r3, r3, #4 + 8001f1c: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 8001f20: 4b04 ldr r3, [pc, #16] @ (8001f34 ) + 8001f22: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8001f26: 4a03 ldr r2, [pc, #12] @ (8001f34 ) + 8001f28: f043 0301 orr.w r3, r3, #1 + 8001f2c: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 8001f30: e014 b.n 8001f5c + 8001f32: bf00 nop + 8001f34: 40021000 .word 0x40021000 + 8001f38: 40007000 .word 0x40007000 + 8001f3c: 4b9a ldr r3, [pc, #616] @ (80021a8 ) + 8001f3e: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8001f42: 4a99 ldr r2, [pc, #612] @ (80021a8 ) + 8001f44: f023 0301 bic.w r3, r3, #1 + 8001f48: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 8001f4c: 4b96 ldr r3, [pc, #600] @ (80021a8 ) + 8001f4e: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8001f52: 4a95 ldr r2, [pc, #596] @ (80021a8 ) + 8001f54: f023 0304 bic.w r3, r3, #4 + 8001f58: f8c2 3090 str.w r3, [r2, #144] @ 0x90 #endif /* RCC_BDCR_LSESYSDIS */ /* Check the LSE State */ if(RCC_OscInitStruct->LSEState != RCC_LSE_OFF) - 8005ad8: 687b ldr r3, [r7, #4] - 8005ada: 689b ldr r3, [r3, #8] - 8005adc: 2b00 cmp r3, #0 - 8005ade: d016 beq.n 8005b0e + 8001f5c: 687b ldr r3, [r7, #4] + 8001f5e: 689b ldr r3, [r3, #8] + 8001f60: 2b00 cmp r3, #0 + 8001f62: d016 beq.n 8001f92 { /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005ae0: f7fe fb1c bl 800411c - 8005ae4: 6138 str r0, [r7, #16] + 8001f64: f7ff faae bl 80014c4 + 8001f68: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) - 8005ae6: e00a b.n 8005afe + 8001f6a: e00a b.n 8001f82 { if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 8005ae8: f7fe fb18 bl 800411c - 8005aec: 4602 mov r2, r0 - 8005aee: 693b ldr r3, [r7, #16] - 8005af0: 1ad3 subs r3, r2, r3 - 8005af2: f241 3288 movw r2, #5000 @ 0x1388 - 8005af6: 4293 cmp r3, r2 - 8005af8: d901 bls.n 8005afe + 8001f6c: f7ff faaa bl 80014c4 + 8001f70: 4602 mov r2, r0 + 8001f72: 693b ldr r3, [r7, #16] + 8001f74: 1ad3 subs r3, r2, r3 + 8001f76: f241 3288 movw r2, #5000 @ 0x1388 + 8001f7a: 4293 cmp r3, r2 + 8001f7c: d901 bls.n 8001f82 { return HAL_TIMEOUT; - 8005afa: 2303 movs r3, #3 - 8005afc: e162 b.n 8005dc4 + 8001f7e: 2303 movs r3, #3 + 8001f80: e162 b.n 8002248 while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) - 8005afe: 4b89 ldr r3, [pc, #548] @ (8005d24 ) - 8005b00: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8005b04: f003 0302 and.w r3, r3, #2 - 8005b08: 2b00 cmp r3, #0 - 8005b0a: d0ed beq.n 8005ae8 - 8005b0c: e015 b.n 8005b3a + 8001f82: 4b89 ldr r3, [pc, #548] @ (80021a8 ) + 8001f84: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8001f88: f003 0302 and.w r3, r3, #2 + 8001f8c: 2b00 cmp r3, #0 + 8001f8e: d0ed beq.n 8001f6c + 8001f90: e015 b.n 8001fbe } } else { /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005b0e: f7fe fb05 bl 800411c - 8005b12: 6138 str r0, [r7, #16] + 8001f92: f7ff fa97 bl 80014c4 + 8001f96: 6138 str r0, [r7, #16] /* Wait till LSE is disabled */ while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) != 0U) - 8005b14: e00a b.n 8005b2c + 8001f98: e00a b.n 8001fb0 { if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 8005b16: f7fe fb01 bl 800411c - 8005b1a: 4602 mov r2, r0 - 8005b1c: 693b ldr r3, [r7, #16] - 8005b1e: 1ad3 subs r3, r2, r3 - 8005b20: f241 3288 movw r2, #5000 @ 0x1388 - 8005b24: 4293 cmp r3, r2 - 8005b26: d901 bls.n 8005b2c + 8001f9a: f7ff fa93 bl 80014c4 + 8001f9e: 4602 mov r2, r0 + 8001fa0: 693b ldr r3, [r7, #16] + 8001fa2: 1ad3 subs r3, r2, r3 + 8001fa4: f241 3288 movw r2, #5000 @ 0x1388 + 8001fa8: 4293 cmp r3, r2 + 8001faa: d901 bls.n 8001fb0 { return HAL_TIMEOUT; - 8005b28: 2303 movs r3, #3 - 8005b2a: e14b b.n 8005dc4 + 8001fac: 2303 movs r3, #3 + 8001fae: e14b b.n 8002248 while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) != 0U) - 8005b2c: 4b7d ldr r3, [pc, #500] @ (8005d24 ) - 8005b2e: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8005b32: f003 0302 and.w r3, r3, #2 - 8005b36: 2b00 cmp r3, #0 - 8005b38: d1ed bne.n 8005b16 + 8001fb0: 4b7d ldr r3, [pc, #500] @ (80021a8 ) + 8001fb2: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8001fb6: f003 0302 and.w r3, r3, #2 + 8001fba: 2b00 cmp r3, #0 + 8001fbc: d1ed bne.n 8001f9a CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSESYSDIS); #endif /* RCC_BDCR_LSESYSDIS */ } /* Restore clock configuration if changed */ if(pwrclkchanged == SET) - 8005b3a: 7ffb ldrb r3, [r7, #31] - 8005b3c: 2b01 cmp r3, #1 - 8005b3e: d105 bne.n 8005b4c + 8001fbe: 7ffb ldrb r3, [r7, #31] + 8001fc0: 2b01 cmp r3, #1 + 8001fc2: d105 bne.n 8001fd0 { __HAL_RCC_PWR_CLK_DISABLE(); - 8005b40: 4b78 ldr r3, [pc, #480] @ (8005d24 ) - 8005b42: 6d9b ldr r3, [r3, #88] @ 0x58 - 8005b44: 4a77 ldr r2, [pc, #476] @ (8005d24 ) - 8005b46: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 - 8005b4a: 6593 str r3, [r2, #88] @ 0x58 + 8001fc4: 4b78 ldr r3, [pc, #480] @ (80021a8 ) + 8001fc6: 6d9b ldr r3, [r3, #88] @ 0x58 + 8001fc8: 4a77 ldr r2, [pc, #476] @ (80021a8 ) + 8001fca: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 8001fce: 6593 str r3, [r2, #88] @ 0x58 } } #if defined(RCC_HSI48_SUPPORT) /*------------------------------ HSI48 Configuration -----------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI48) == RCC_OSCILLATORTYPE_HSI48) - 8005b4c: 687b ldr r3, [r7, #4] - 8005b4e: 681b ldr r3, [r3, #0] - 8005b50: f003 0320 and.w r3, r3, #32 - 8005b54: 2b00 cmp r3, #0 - 8005b56: d03c beq.n 8005bd2 + 8001fd0: 687b ldr r3, [r7, #4] + 8001fd2: 681b ldr r3, [r3, #0] + 8001fd4: f003 0320 and.w r3, r3, #32 + 8001fd8: 2b00 cmp r3, #0 + 8001fda: d03c beq.n 8002056 { /* Check the parameters */ assert_param(IS_RCC_HSI48(RCC_OscInitStruct->HSI48State)); /* Check the LSI State */ if(RCC_OscInitStruct->HSI48State != RCC_HSI48_OFF) - 8005b58: 687b ldr r3, [r7, #4] - 8005b5a: 6a5b ldr r3, [r3, #36] @ 0x24 - 8005b5c: 2b00 cmp r3, #0 - 8005b5e: d01c beq.n 8005b9a + 8001fdc: 687b ldr r3, [r7, #4] + 8001fde: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001fe0: 2b00 cmp r3, #0 + 8001fe2: d01c beq.n 800201e { /* Enable the Internal Low Speed oscillator (HSI48). */ __HAL_RCC_HSI48_ENABLE(); - 8005b60: 4b70 ldr r3, [pc, #448] @ (8005d24 ) - 8005b62: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 - 8005b66: 4a6f ldr r2, [pc, #444] @ (8005d24 ) - 8005b68: f043 0301 orr.w r3, r3, #1 - 8005b6c: f8c2 3098 str.w r3, [r2, #152] @ 0x98 + 8001fe4: 4b70 ldr r3, [pc, #448] @ (80021a8 ) + 8001fe6: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 + 8001fea: 4a6f ldr r2, [pc, #444] @ (80021a8 ) + 8001fec: f043 0301 orr.w r3, r3, #1 + 8001ff0: f8c2 3098 str.w r3, [r2, #152] @ 0x98 /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005b70: f7fe fad4 bl 800411c - 8005b74: 6138 str r0, [r7, #16] + 8001ff4: f7ff fa66 bl 80014c4 + 8001ff8: 6138 str r0, [r7, #16] /* Wait till HSI48 is ready */ while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) == 0U) - 8005b76: e008 b.n 8005b8a + 8001ffa: e008 b.n 800200e { if((HAL_GetTick() - tickstart) > HSI48_TIMEOUT_VALUE) - 8005b78: f7fe fad0 bl 800411c - 8005b7c: 4602 mov r2, r0 - 8005b7e: 693b ldr r3, [r7, #16] - 8005b80: 1ad3 subs r3, r2, r3 - 8005b82: 2b02 cmp r3, #2 - 8005b84: d901 bls.n 8005b8a + 8001ffc: f7ff fa62 bl 80014c4 + 8002000: 4602 mov r2, r0 + 8002002: 693b ldr r3, [r7, #16] + 8002004: 1ad3 subs r3, r2, r3 + 8002006: 2b02 cmp r3, #2 + 8002008: d901 bls.n 800200e { return HAL_TIMEOUT; - 8005b86: 2303 movs r3, #3 - 8005b88: e11c b.n 8005dc4 + 800200a: 2303 movs r3, #3 + 800200c: e11c b.n 8002248 while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) == 0U) - 8005b8a: 4b66 ldr r3, [pc, #408] @ (8005d24 ) - 8005b8c: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 - 8005b90: f003 0302 and.w r3, r3, #2 - 8005b94: 2b00 cmp r3, #0 - 8005b96: d0ef beq.n 8005b78 - 8005b98: e01b b.n 8005bd2 + 800200e: 4b66 ldr r3, [pc, #408] @ (80021a8 ) + 8002010: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 + 8002014: f003 0302 and.w r3, r3, #2 + 8002018: 2b00 cmp r3, #0 + 800201a: d0ef beq.n 8001ffc + 800201c: e01b b.n 8002056 } } else { /* Disable the Internal Low Speed oscillator (HSI48). */ __HAL_RCC_HSI48_DISABLE(); - 8005b9a: 4b62 ldr r3, [pc, #392] @ (8005d24 ) - 8005b9c: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 - 8005ba0: 4a60 ldr r2, [pc, #384] @ (8005d24 ) - 8005ba2: f023 0301 bic.w r3, r3, #1 - 8005ba6: f8c2 3098 str.w r3, [r2, #152] @ 0x98 + 800201e: 4b62 ldr r3, [pc, #392] @ (80021a8 ) + 8002020: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 + 8002024: 4a60 ldr r2, [pc, #384] @ (80021a8 ) + 8002026: f023 0301 bic.w r3, r3, #1 + 800202a: f8c2 3098 str.w r3, [r2, #152] @ 0x98 /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005baa: f7fe fab7 bl 800411c - 8005bae: 6138 str r0, [r7, #16] + 800202e: f7ff fa49 bl 80014c4 + 8002032: 6138 str r0, [r7, #16] /* Wait till HSI48 is disabled */ while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) != 0U) - 8005bb0: e008 b.n 8005bc4 + 8002034: e008 b.n 8002048 { if((HAL_GetTick() - tickstart) > HSI48_TIMEOUT_VALUE) - 8005bb2: f7fe fab3 bl 800411c - 8005bb6: 4602 mov r2, r0 - 8005bb8: 693b ldr r3, [r7, #16] - 8005bba: 1ad3 subs r3, r2, r3 - 8005bbc: 2b02 cmp r3, #2 - 8005bbe: d901 bls.n 8005bc4 + 8002036: f7ff fa45 bl 80014c4 + 800203a: 4602 mov r2, r0 + 800203c: 693b ldr r3, [r7, #16] + 800203e: 1ad3 subs r3, r2, r3 + 8002040: 2b02 cmp r3, #2 + 8002042: d901 bls.n 8002048 { return HAL_TIMEOUT; - 8005bc0: 2303 movs r3, #3 - 8005bc2: e0ff b.n 8005dc4 + 8002044: 2303 movs r3, #3 + 8002046: e0ff b.n 8002248 while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) != 0U) - 8005bc4: 4b57 ldr r3, [pc, #348] @ (8005d24 ) - 8005bc6: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 - 8005bca: f003 0302 and.w r3, r3, #2 - 8005bce: 2b00 cmp r3, #0 - 8005bd0: d1ef bne.n 8005bb2 + 8002048: 4b57 ldr r3, [pc, #348] @ (80021a8 ) + 800204a: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 + 800204e: f003 0302 and.w r3, r3, #2 + 8002052: 2b00 cmp r3, #0 + 8002054: d1ef bne.n 8002036 #endif /* RCC_HSI48_SUPPORT */ /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if(RCC_OscInitStruct->PLL.PLLState != RCC_PLL_NONE) - 8005bd2: 687b ldr r3, [r7, #4] - 8005bd4: 6a9b ldr r3, [r3, #40] @ 0x28 - 8005bd6: 2b00 cmp r3, #0 - 8005bd8: f000 80f3 beq.w 8005dc2 + 8002056: 687b ldr r3, [r7, #4] + 8002058: 6a9b ldr r3, [r3, #40] @ 0x28 + 800205a: 2b00 cmp r3, #0 + 800205c: f000 80f3 beq.w 8002246 { /* PLL On ? */ if(RCC_OscInitStruct->PLL.PLLState == RCC_PLL_ON) - 8005bdc: 687b ldr r3, [r7, #4] - 8005bde: 6a9b ldr r3, [r3, #40] @ 0x28 - 8005be0: 2b02 cmp r3, #2 - 8005be2: f040 80c9 bne.w 8005d78 + 8002060: 687b ldr r3, [r7, #4] + 8002062: 6a9b ldr r3, [r3, #40] @ 0x28 + 8002064: 2b02 cmp r3, #2 + 8002066: f040 80c9 bne.w 80021fc #endif /* RCC_PLLP_SUPPORT */ assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->PLL.PLLQ)); assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); /* Do nothing if PLL configuration is the unchanged */ pll_config = RCC->PLLCFGR; - 8005be6: 4b4f ldr r3, [pc, #316] @ (8005d24 ) - 8005be8: 68db ldr r3, [r3, #12] - 8005bea: 617b str r3, [r7, #20] + 800206a: 4b4f ldr r3, [pc, #316] @ (80021a8 ) + 800206c: 68db ldr r3, [r3, #12] + 800206e: 617b str r3, [r7, #20] if((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 8005bec: 697b ldr r3, [r7, #20] - 8005bee: f003 0203 and.w r2, r3, #3 - 8005bf2: 687b ldr r3, [r7, #4] - 8005bf4: 6adb ldr r3, [r3, #44] @ 0x2c - 8005bf6: 429a cmp r2, r3 - 8005bf8: d12c bne.n 8005c54 + 8002070: 697b ldr r3, [r7, #20] + 8002072: f003 0203 and.w r2, r3, #3 + 8002076: 687b ldr r3, [r7, #4] + 8002078: 6adb ldr r3, [r3, #44] @ 0x2c + 800207a: 429a cmp r2, r3 + 800207c: d12c bne.n 80020d8 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != ((RCC_OscInitStruct->PLL.PLLM - 1U) << RCC_PLLCFGR_PLLM_Pos)) || - 8005bfa: 697b ldr r3, [r7, #20] - 8005bfc: f003 0270 and.w r2, r3, #112 @ 0x70 - 8005c00: 687b ldr r3, [r7, #4] - 8005c02: 6b1b ldr r3, [r3, #48] @ 0x30 - 8005c04: 3b01 subs r3, #1 - 8005c06: 011b lsls r3, r3, #4 + 800207e: 697b ldr r3, [r7, #20] + 8002080: f003 0270 and.w r2, r3, #112 @ 0x70 + 8002084: 687b ldr r3, [r7, #4] + 8002086: 6b1b ldr r3, [r3, #48] @ 0x30 + 8002088: 3b01 subs r3, #1 + 800208a: 011b lsls r3, r3, #4 if((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 8005c08: 429a cmp r2, r3 - 8005c0a: d123 bne.n 8005c54 + 800208c: 429a cmp r2, r3 + 800208e: d123 bne.n 80020d8 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || - 8005c0c: 697b ldr r3, [r7, #20] - 8005c0e: f403 42fe and.w r2, r3, #32512 @ 0x7f00 - 8005c12: 687b ldr r3, [r7, #4] - 8005c14: 6b5b ldr r3, [r3, #52] @ 0x34 - 8005c16: 021b lsls r3, r3, #8 + 8002090: 697b ldr r3, [r7, #20] + 8002092: f403 42fe and.w r2, r3, #32512 @ 0x7f00 + 8002096: 687b ldr r3, [r7, #4] + 8002098: 6b5b ldr r3, [r3, #52] @ 0x34 + 800209a: 021b lsls r3, r3, #8 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != ((RCC_OscInitStruct->PLL.PLLM - 1U) << RCC_PLLCFGR_PLLM_Pos)) || - 8005c18: 429a cmp r2, r3 - 8005c1a: d11b bne.n 8005c54 + 800209c: 429a cmp r2, r3 + 800209e: d11b bne.n 80020d8 #if defined(RCC_PLLP_SUPPORT) #if defined(RCC_PLLP_DIV_2_31_SUPPORT) (READ_BIT(pll_config, RCC_PLLCFGR_PLLPDIV) != (RCC_OscInitStruct->PLL.PLLP << RCC_PLLCFGR_PLLPDIV_Pos)) || - 8005c1c: 697b ldr r3, [r7, #20] - 8005c1e: f003 4278 and.w r2, r3, #4160749568 @ 0xf8000000 - 8005c22: 687b ldr r3, [r7, #4] - 8005c24: 6b9b ldr r3, [r3, #56] @ 0x38 - 8005c26: 06db lsls r3, r3, #27 + 80020a0: 697b ldr r3, [r7, #20] + 80020a2: f003 4278 and.w r2, r3, #4160749568 @ 0xf8000000 + 80020a6: 687b ldr r3, [r7, #4] + 80020a8: 6b9b ldr r3, [r3, #56] @ 0x38 + 80020aa: 06db lsls r3, r3, #27 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || - 8005c28: 429a cmp r2, r3 - 8005c2a: d113 bne.n 8005c54 + 80020ac: 429a cmp r2, r3 + 80020ae: d113 bne.n 80020d8 #else (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((RCC_OscInitStruct->PLL.PLLP == RCC_PLLP_DIV7) ? 0U : 1U)) || #endif #endif (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U) << RCC_PLLCFGR_PLLQ_Pos)) || - 8005c2c: 697b ldr r3, [r7, #20] - 8005c2e: f403 02c0 and.w r2, r3, #6291456 @ 0x600000 - 8005c32: 687b ldr r3, [r7, #4] - 8005c34: 6bdb ldr r3, [r3, #60] @ 0x3c - 8005c36: 085b lsrs r3, r3, #1 - 8005c38: 3b01 subs r3, #1 - 8005c3a: 055b lsls r3, r3, #21 + 80020b0: 697b ldr r3, [r7, #20] + 80020b2: f403 02c0 and.w r2, r3, #6291456 @ 0x600000 + 80020b6: 687b ldr r3, [r7, #4] + 80020b8: 6bdb ldr r3, [r3, #60] @ 0x3c + 80020ba: 085b lsrs r3, r3, #1 + 80020bc: 3b01 subs r3, #1 + 80020be: 055b lsls r3, r3, #21 (READ_BIT(pll_config, RCC_PLLCFGR_PLLPDIV) != (RCC_OscInitStruct->PLL.PLLP << RCC_PLLCFGR_PLLPDIV_Pos)) || - 8005c3c: 429a cmp r2, r3 - 8005c3e: d109 bne.n 8005c54 + 80020c0: 429a cmp r2, r3 + 80020c2: d109 bne.n 80020d8 (READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U) << RCC_PLLCFGR_PLLR_Pos))) - 8005c40: 697b ldr r3, [r7, #20] - 8005c42: f003 62c0 and.w r2, r3, #100663296 @ 0x6000000 - 8005c46: 687b ldr r3, [r7, #4] - 8005c48: 6c1b ldr r3, [r3, #64] @ 0x40 - 8005c4a: 085b lsrs r3, r3, #1 - 8005c4c: 3b01 subs r3, #1 - 8005c4e: 065b lsls r3, r3, #25 + 80020c4: 697b ldr r3, [r7, #20] + 80020c6: f003 62c0 and.w r2, r3, #100663296 @ 0x6000000 + 80020ca: 687b ldr r3, [r7, #4] + 80020cc: 6c1b ldr r3, [r3, #64] @ 0x40 + 80020ce: 085b lsrs r3, r3, #1 + 80020d0: 3b01 subs r3, #1 + 80020d2: 065b lsls r3, r3, #25 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U) << RCC_PLLCFGR_PLLQ_Pos)) || - 8005c50: 429a cmp r2, r3 - 8005c52: d06b beq.n 8005d2c + 80020d4: 429a cmp r2, r3 + 80020d6: d06b beq.n 80021b0 { /* Check if the PLL is used as system clock or not */ if(sysclk_source != RCC_CFGR_SWS_PLL) - 8005c54: 69bb ldr r3, [r7, #24] - 8005c56: 2b0c cmp r3, #12 - 8005c58: d062 beq.n 8005d20 + 80020d8: 69bb ldr r3, [r7, #24] + 80020da: 2b0c cmp r3, #12 + 80020dc: d062 beq.n 80021a4 { #if defined(RCC_PLLSAI1_SUPPORT) || defined(RCC_PLLSAI2_SUPPORT) /* Check if main PLL can be updated */ /* Not possible if the source is shared by other enabled PLLSAIx */ if((READ_BIT(RCC->CR, RCC_CR_PLLSAI1ON) != 0U) - 8005c5a: 4b32 ldr r3, [pc, #200] @ (8005d24 ) - 8005c5c: 681b ldr r3, [r3, #0] - 8005c5e: f003 6380 and.w r3, r3, #67108864 @ 0x4000000 - 8005c62: 2b00 cmp r3, #0 - 8005c64: d001 beq.n 8005c6a + 80020de: 4b32 ldr r3, [pc, #200] @ (80021a8 ) + 80020e0: 681b ldr r3, [r3, #0] + 80020e2: f003 6380 and.w r3, r3, #67108864 @ 0x4000000 + 80020e6: 2b00 cmp r3, #0 + 80020e8: d001 beq.n 80020ee #if defined(RCC_PLLSAI2_SUPPORT) || (READ_BIT(RCC->CR, RCC_CR_PLLSAI2ON) != 0U) #endif ) { return HAL_ERROR; - 8005c66: 2301 movs r3, #1 - 8005c68: e0ac b.n 8005dc4 + 80020ea: 2301 movs r3, #1 + 80020ec: e0ac b.n 8002248 } else #endif /* RCC_PLLSAI1_SUPPORT || RCC_PLLSAI2_SUPPORT */ { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 8005c6a: 4b2e ldr r3, [pc, #184] @ (8005d24 ) - 8005c6c: 681b ldr r3, [r3, #0] - 8005c6e: 4a2d ldr r2, [pc, #180] @ (8005d24 ) - 8005c70: f023 7380 bic.w r3, r3, #16777216 @ 0x1000000 - 8005c74: 6013 str r3, [r2, #0] + 80020ee: 4b2e ldr r3, [pc, #184] @ (80021a8 ) + 80020f0: 681b ldr r3, [r3, #0] + 80020f2: 4a2d ldr r2, [pc, #180] @ (80021a8 ) + 80020f4: f023 7380 bic.w r3, r3, #16777216 @ 0x1000000 + 80020f8: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005c76: f7fe fa51 bl 800411c - 8005c7a: 6138 str r0, [r7, #16] + 80020fa: f7ff f9e3 bl 80014c4 + 80020fe: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) - 8005c7c: e008 b.n 8005c90 + 8002100: e008 b.n 8002114 { if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8005c7e: f7fe fa4d bl 800411c - 8005c82: 4602 mov r2, r0 - 8005c84: 693b ldr r3, [r7, #16] - 8005c86: 1ad3 subs r3, r2, r3 - 8005c88: 2b02 cmp r3, #2 - 8005c8a: d901 bls.n 8005c90 + 8002102: f7ff f9df bl 80014c4 + 8002106: 4602 mov r2, r0 + 8002108: 693b ldr r3, [r7, #16] + 800210a: 1ad3 subs r3, r2, r3 + 800210c: 2b02 cmp r3, #2 + 800210e: d901 bls.n 8002114 { return HAL_TIMEOUT; - 8005c8c: 2303 movs r3, #3 - 8005c8e: e099 b.n 8005dc4 + 8002110: 2303 movs r3, #3 + 8002112: e099 b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) - 8005c90: 4b24 ldr r3, [pc, #144] @ (8005d24 ) - 8005c92: 681b ldr r3, [r3, #0] - 8005c94: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 8005c98: 2b00 cmp r3, #0 - 8005c9a: d1f0 bne.n 8005c7e + 8002114: 4b24 ldr r3, [pc, #144] @ (80021a8 ) + 8002116: 681b ldr r3, [r3, #0] + 8002118: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 800211c: 2b00 cmp r3, #0 + 800211e: d1f0 bne.n 8002102 } } /* Configure the main PLL clock source, multiplication and division factors. */ #if defined(RCC_PLLP_SUPPORT) __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, - 8005c9c: 4b21 ldr r3, [pc, #132] @ (8005d24 ) - 8005c9e: 68da ldr r2, [r3, #12] - 8005ca0: 4b21 ldr r3, [pc, #132] @ (8005d28 ) - 8005ca2: 4013 ands r3, r2 - 8005ca4: 687a ldr r2, [r7, #4] - 8005ca6: 6ad1 ldr r1, [r2, #44] @ 0x2c - 8005ca8: 687a ldr r2, [r7, #4] - 8005caa: 6b12 ldr r2, [r2, #48] @ 0x30 - 8005cac: 3a01 subs r2, #1 - 8005cae: 0112 lsls r2, r2, #4 - 8005cb0: 4311 orrs r1, r2 - 8005cb2: 687a ldr r2, [r7, #4] - 8005cb4: 6b52 ldr r2, [r2, #52] @ 0x34 - 8005cb6: 0212 lsls r2, r2, #8 - 8005cb8: 4311 orrs r1, r2 - 8005cba: 687a ldr r2, [r7, #4] - 8005cbc: 6bd2 ldr r2, [r2, #60] @ 0x3c - 8005cbe: 0852 lsrs r2, r2, #1 - 8005cc0: 3a01 subs r2, #1 - 8005cc2: 0552 lsls r2, r2, #21 - 8005cc4: 4311 orrs r1, r2 - 8005cc6: 687a ldr r2, [r7, #4] - 8005cc8: 6c12 ldr r2, [r2, #64] @ 0x40 - 8005cca: 0852 lsrs r2, r2, #1 - 8005ccc: 3a01 subs r2, #1 - 8005cce: 0652 lsls r2, r2, #25 - 8005cd0: 4311 orrs r1, r2 - 8005cd2: 687a ldr r2, [r7, #4] - 8005cd4: 6b92 ldr r2, [r2, #56] @ 0x38 - 8005cd6: 06d2 lsls r2, r2, #27 - 8005cd8: 430a orrs r2, r1 - 8005cda: 4912 ldr r1, [pc, #72] @ (8005d24 ) - 8005cdc: 4313 orrs r3, r2 - 8005cde: 60cb str r3, [r1, #12] + 8002120: 4b21 ldr r3, [pc, #132] @ (80021a8 ) + 8002122: 68da ldr r2, [r3, #12] + 8002124: 4b21 ldr r3, [pc, #132] @ (80021ac ) + 8002126: 4013 ands r3, r2 + 8002128: 687a ldr r2, [r7, #4] + 800212a: 6ad1 ldr r1, [r2, #44] @ 0x2c + 800212c: 687a ldr r2, [r7, #4] + 800212e: 6b12 ldr r2, [r2, #48] @ 0x30 + 8002130: 3a01 subs r2, #1 + 8002132: 0112 lsls r2, r2, #4 + 8002134: 4311 orrs r1, r2 + 8002136: 687a ldr r2, [r7, #4] + 8002138: 6b52 ldr r2, [r2, #52] @ 0x34 + 800213a: 0212 lsls r2, r2, #8 + 800213c: 4311 orrs r1, r2 + 800213e: 687a ldr r2, [r7, #4] + 8002140: 6bd2 ldr r2, [r2, #60] @ 0x3c + 8002142: 0852 lsrs r2, r2, #1 + 8002144: 3a01 subs r2, #1 + 8002146: 0552 lsls r2, r2, #21 + 8002148: 4311 orrs r1, r2 + 800214a: 687a ldr r2, [r7, #4] + 800214c: 6c12 ldr r2, [r2, #64] @ 0x40 + 800214e: 0852 lsrs r2, r2, #1 + 8002150: 3a01 subs r2, #1 + 8002152: 0652 lsls r2, r2, #25 + 8002154: 4311 orrs r1, r2 + 8002156: 687a ldr r2, [r7, #4] + 8002158: 6b92 ldr r2, [r2, #56] @ 0x38 + 800215a: 06d2 lsls r2, r2, #27 + 800215c: 430a orrs r2, r1 + 800215e: 4912 ldr r1, [pc, #72] @ (80021a8 ) + 8002160: 4313 orrs r3, r2 + 8002162: 60cb str r3, [r1, #12] RCC_OscInitStruct->PLL.PLLQ, RCC_OscInitStruct->PLL.PLLR); #endif /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); - 8005ce0: 4b10 ldr r3, [pc, #64] @ (8005d24 ) - 8005ce2: 681b ldr r3, [r3, #0] - 8005ce4: 4a0f ldr r2, [pc, #60] @ (8005d24 ) - 8005ce6: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 - 8005cea: 6013 str r3, [r2, #0] + 8002164: 4b10 ldr r3, [pc, #64] @ (80021a8 ) + 8002166: 681b ldr r3, [r3, #0] + 8002168: 4a0f ldr r2, [pc, #60] @ (80021a8 ) + 800216a: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 + 800216e: 6013 str r3, [r2, #0] /* Enable PLL System Clock output. */ __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SYSCLK); - 8005cec: 4b0d ldr r3, [pc, #52] @ (8005d24 ) - 8005cee: 68db ldr r3, [r3, #12] - 8005cf0: 4a0c ldr r2, [pc, #48] @ (8005d24 ) - 8005cf2: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 - 8005cf6: 60d3 str r3, [r2, #12] + 8002170: 4b0d ldr r3, [pc, #52] @ (80021a8 ) + 8002172: 68db ldr r3, [r3, #12] + 8002174: 4a0c ldr r2, [pc, #48] @ (80021a8 ) + 8002176: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 + 800217a: 60d3 str r3, [r2, #12] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005cf8: f7fe fa10 bl 800411c - 8005cfc: 6138 str r0, [r7, #16] + 800217c: f7ff f9a2 bl 80014c4 + 8002180: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 8005cfe: e008 b.n 8005d12 + 8002182: e008 b.n 8002196 { if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8005d00: f7fe fa0c bl 800411c - 8005d04: 4602 mov r2, r0 - 8005d06: 693b ldr r3, [r7, #16] - 8005d08: 1ad3 subs r3, r2, r3 - 8005d0a: 2b02 cmp r3, #2 - 8005d0c: d901 bls.n 8005d12 + 8002184: f7ff f99e bl 80014c4 + 8002188: 4602 mov r2, r0 + 800218a: 693b ldr r3, [r7, #16] + 800218c: 1ad3 subs r3, r2, r3 + 800218e: 2b02 cmp r3, #2 + 8002190: d901 bls.n 8002196 { return HAL_TIMEOUT; - 8005d0e: 2303 movs r3, #3 - 8005d10: e058 b.n 8005dc4 + 8002192: 2303 movs r3, #3 + 8002194: e058 b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 8005d12: 4b04 ldr r3, [pc, #16] @ (8005d24 ) - 8005d14: 681b ldr r3, [r3, #0] - 8005d16: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 8005d1a: 2b00 cmp r3, #0 - 8005d1c: d0f0 beq.n 8005d00 + 8002196: 4b04 ldr r3, [pc, #16] @ (80021a8 ) + 8002198: 681b ldr r3, [r3, #0] + 800219a: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 800219e: 2b00 cmp r3, #0 + 80021a0: d0f0 beq.n 8002184 if(sysclk_source != RCC_CFGR_SWS_PLL) - 8005d1e: e050 b.n 8005dc2 + 80021a2: e050 b.n 8002246 } } else { /* PLL is already used as System core clock */ return HAL_ERROR; - 8005d20: 2301 movs r3, #1 - 8005d22: e04f b.n 8005dc4 - 8005d24: 40021000 .word 0x40021000 - 8005d28: 019d808c .word 0x019d808c + 80021a4: 2301 movs r3, #1 + 80021a6: e04f b.n 8002248 + 80021a8: 40021000 .word 0x40021000 + 80021ac: 019d808c .word 0x019d808c } else { /* PLL configuration is unchanged */ /* Re-enable PLL if it was disabled (ie. low power mode) */ if(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 8005d2c: 4b27 ldr r3, [pc, #156] @ (8005dcc ) - 8005d2e: 681b ldr r3, [r3, #0] - 8005d30: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 8005d34: 2b00 cmp r3, #0 - 8005d36: d144 bne.n 8005dc2 + 80021b0: 4b27 ldr r3, [pc, #156] @ (8002250 ) + 80021b2: 681b ldr r3, [r3, #0] + 80021b4: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80021b8: 2b00 cmp r3, #0 + 80021ba: d144 bne.n 8002246 { /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); - 8005d38: 4b24 ldr r3, [pc, #144] @ (8005dcc ) - 8005d3a: 681b ldr r3, [r3, #0] - 8005d3c: 4a23 ldr r2, [pc, #140] @ (8005dcc ) - 8005d3e: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 - 8005d42: 6013 str r3, [r2, #0] + 80021bc: 4b24 ldr r3, [pc, #144] @ (8002250 ) + 80021be: 681b ldr r3, [r3, #0] + 80021c0: 4a23 ldr r2, [pc, #140] @ (8002250 ) + 80021c2: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 + 80021c6: 6013 str r3, [r2, #0] /* Enable PLL System Clock output. */ __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SYSCLK); - 8005d44: 4b21 ldr r3, [pc, #132] @ (8005dcc ) - 8005d46: 68db ldr r3, [r3, #12] - 8005d48: 4a20 ldr r2, [pc, #128] @ (8005dcc ) - 8005d4a: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 - 8005d4e: 60d3 str r3, [r2, #12] + 80021c8: 4b21 ldr r3, [pc, #132] @ (8002250 ) + 80021ca: 68db ldr r3, [r3, #12] + 80021cc: 4a20 ldr r2, [pc, #128] @ (8002250 ) + 80021ce: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 + 80021d2: 60d3 str r3, [r2, #12] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005d50: f7fe f9e4 bl 800411c - 8005d54: 6138 str r0, [r7, #16] + 80021d4: f7ff f976 bl 80014c4 + 80021d8: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 8005d56: e008 b.n 8005d6a + 80021da: e008 b.n 80021ee { if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8005d58: f7fe f9e0 bl 800411c - 8005d5c: 4602 mov r2, r0 - 8005d5e: 693b ldr r3, [r7, #16] - 8005d60: 1ad3 subs r3, r2, r3 - 8005d62: 2b02 cmp r3, #2 - 8005d64: d901 bls.n 8005d6a + 80021dc: f7ff f972 bl 80014c4 + 80021e0: 4602 mov r2, r0 + 80021e2: 693b ldr r3, [r7, #16] + 80021e4: 1ad3 subs r3, r2, r3 + 80021e6: 2b02 cmp r3, #2 + 80021e8: d901 bls.n 80021ee { return HAL_TIMEOUT; - 8005d66: 2303 movs r3, #3 - 8005d68: e02c b.n 8005dc4 + 80021ea: 2303 movs r3, #3 + 80021ec: e02c b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 8005d6a: 4b18 ldr r3, [pc, #96] @ (8005dcc ) - 8005d6c: 681b ldr r3, [r3, #0] - 8005d6e: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 8005d72: 2b00 cmp r3, #0 - 8005d74: d0f0 beq.n 8005d58 - 8005d76: e024 b.n 8005dc2 + 80021ee: 4b18 ldr r3, [pc, #96] @ (8002250 ) + 80021f0: 681b ldr r3, [r3, #0] + 80021f2: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80021f6: 2b00 cmp r3, #0 + 80021f8: d0f0 beq.n 80021dc + 80021fa: e024 b.n 8002246 } } else { /* Check that PLL is not used as system clock or not */ if(sysclk_source != RCC_CFGR_SWS_PLL) - 8005d78: 69bb ldr r3, [r7, #24] - 8005d7a: 2b0c cmp r3, #12 - 8005d7c: d01f beq.n 8005dbe + 80021fc: 69bb ldr r3, [r7, #24] + 80021fe: 2b0c cmp r3, #12 + 8002200: d01f beq.n 8002242 { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 8005d7e: 4b13 ldr r3, [pc, #76] @ (8005dcc ) - 8005d80: 681b ldr r3, [r3, #0] - 8005d82: 4a12 ldr r2, [pc, #72] @ (8005dcc ) - 8005d84: f023 7380 bic.w r3, r3, #16777216 @ 0x1000000 - 8005d88: 6013 str r3, [r2, #0] + 8002202: 4b13 ldr r3, [pc, #76] @ (8002250 ) + 8002204: 681b ldr r3, [r3, #0] + 8002206: 4a12 ldr r2, [pc, #72] @ (8002250 ) + 8002208: f023 7380 bic.w r3, r3, #16777216 @ 0x1000000 + 800220c: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005d8a: f7fe f9c7 bl 800411c - 8005d8e: 6138 str r0, [r7, #16] + 800220e: f7ff f959 bl 80014c4 + 8002212: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) - 8005d90: e008 b.n 8005da4 + 8002214: e008 b.n 8002228 { if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8005d92: f7fe f9c3 bl 800411c - 8005d96: 4602 mov r2, r0 - 8005d98: 693b ldr r3, [r7, #16] - 8005d9a: 1ad3 subs r3, r2, r3 - 8005d9c: 2b02 cmp r3, #2 - 8005d9e: d901 bls.n 8005da4 + 8002216: f7ff f955 bl 80014c4 + 800221a: 4602 mov r2, r0 + 800221c: 693b ldr r3, [r7, #16] + 800221e: 1ad3 subs r3, r2, r3 + 8002220: 2b02 cmp r3, #2 + 8002222: d901 bls.n 8002228 { return HAL_TIMEOUT; - 8005da0: 2303 movs r3, #3 - 8005da2: e00f b.n 8005dc4 + 8002224: 2303 movs r3, #3 + 8002226: e00f b.n 8002248 while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) - 8005da4: 4b09 ldr r3, [pc, #36] @ (8005dcc ) - 8005da6: 681b ldr r3, [r3, #0] - 8005da8: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 8005dac: 2b00 cmp r3, #0 - 8005dae: d1f0 bne.n 8005d92 + 8002228: 4b09 ldr r3, [pc, #36] @ (8002250 ) + 800222a: 681b ldr r3, [r3, #0] + 800222c: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 8002230: 2b00 cmp r3, #0 + 8002232: d1f0 bne.n 8002216 } /* Unselect main PLL clock source and disable main PLL outputs to save power */ #if defined(RCC_PLLSAI2_SUPPORT) RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLSRC | RCC_PLL_SYSCLK | RCC_PLL_48M1CLK | RCC_PLL_SAI3CLK); #elif defined(RCC_PLLSAI1_SUPPORT) RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLSRC | RCC_PLL_SYSCLK | RCC_PLL_48M1CLK | RCC_PLL_SAI2CLK); - 8005db0: 4b06 ldr r3, [pc, #24] @ (8005dcc ) - 8005db2: 68da ldr r2, [r3, #12] - 8005db4: 4905 ldr r1, [pc, #20] @ (8005dcc ) - 8005db6: 4b06 ldr r3, [pc, #24] @ (8005dd0 ) - 8005db8: 4013 ands r3, r2 - 8005dba: 60cb str r3, [r1, #12] - 8005dbc: e001 b.n 8005dc2 + 8002234: 4b06 ldr r3, [pc, #24] @ (8002250 ) + 8002236: 68da ldr r2, [r3, #12] + 8002238: 4905 ldr r1, [pc, #20] @ (8002250 ) + 800223a: 4b06 ldr r3, [pc, #24] @ (8002254 ) + 800223c: 4013 ands r3, r2 + 800223e: 60cb str r3, [r1, #12] + 8002240: e001 b.n 8002246 #endif /* RCC_PLLSAI2_SUPPORT */ } else { /* PLL is already used as System core clock */ return HAL_ERROR; - 8005dbe: 2301 movs r3, #1 - 8005dc0: e000 b.n 8005dc4 + 8002242: 2301 movs r3, #1 + 8002244: e000 b.n 8002248 } } } return HAL_OK; - 8005dc2: 2300 movs r3, #0 + 8002246: 2300 movs r3, #0 } - 8005dc4: 4618 mov r0, r3 - 8005dc6: 3720 adds r7, #32 - 8005dc8: 46bd mov sp, r7 - 8005dca: bd80 pop {r7, pc} - 8005dcc: 40021000 .word 0x40021000 - 8005dd0: feeefffc .word 0xfeeefffc + 8002248: 4618 mov r0, r3 + 800224a: 3720 adds r7, #32 + 800224c: 46bd mov sp, r7 + 800224e: bd80 pop {r7, pc} + 8002250: 40021000 .word 0x40021000 + 8002254: feeefffc .word 0xfeeefffc -08005dd4 : +08002258 : * 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) { - 8005dd4: b580 push {r7, lr} - 8005dd6: b084 sub sp, #16 - 8005dd8: af00 add r7, sp, #0 - 8005dda: 6078 str r0, [r7, #4] - 8005ddc: 6039 str r1, [r7, #0] + 8002258: b580 push {r7, lr} + 800225a: b084 sub sp, #16 + 800225c: af00 add r7, sp, #0 + 800225e: 6078 str r0, [r7, #4] + 8002260: 6039 str r1, [r7, #0] uint32_t hpre = RCC_SYSCLK_DIV1; #endif HAL_StatusTypeDef status; /* Check Null pointer */ if(RCC_ClkInitStruct == NULL) - 8005dde: 687b ldr r3, [r7, #4] - 8005de0: 2b00 cmp r3, #0 - 8005de2: d101 bne.n 8005de8 + 8002262: 687b ldr r3, [r7, #4] + 8002264: 2b00 cmp r3, #0 + 8002266: d101 bne.n 800226c { return HAL_ERROR; - 8005de4: 2301 movs r3, #1 - 8005de6: e0e7 b.n 8005fb8 + 8002268: 2301 movs r3, #1 + 800226a: e0e7 b.n 800243c /* 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 number of wait states because of higher CPU frequency */ if(FLatency > __HAL_FLASH_GET_LATENCY()) - 8005de8: 4b75 ldr r3, [pc, #468] @ (8005fc0 ) - 8005dea: 681b ldr r3, [r3, #0] - 8005dec: f003 0307 and.w r3, r3, #7 - 8005df0: 683a ldr r2, [r7, #0] - 8005df2: 429a cmp r2, r3 - 8005df4: d910 bls.n 8005e18 + 800226c: 4b75 ldr r3, [pc, #468] @ (8002444 ) + 800226e: 681b ldr r3, [r3, #0] + 8002270: f003 0307 and.w r3, r3, #7 + 8002274: 683a ldr r2, [r7, #0] + 8002276: 429a cmp r2, r3 + 8002278: d910 bls.n 800229c { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 8005df6: 4b72 ldr r3, [pc, #456] @ (8005fc0 ) - 8005df8: 681b ldr r3, [r3, #0] - 8005dfa: f023 0207 bic.w r2, r3, #7 - 8005dfe: 4970 ldr r1, [pc, #448] @ (8005fc0 ) - 8005e00: 683b ldr r3, [r7, #0] - 8005e02: 4313 orrs r3, r2 - 8005e04: 600b str r3, [r1, #0] + 800227a: 4b72 ldr r3, [pc, #456] @ (8002444 ) + 800227c: 681b ldr r3, [r3, #0] + 800227e: f023 0207 bic.w r2, r3, #7 + 8002282: 4970 ldr r1, [pc, #448] @ (8002444 ) + 8002284: 683b ldr r3, [r7, #0] + 8002286: 4313 orrs r3, r2 + 8002288: 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) - 8005e06: 4b6e ldr r3, [pc, #440] @ (8005fc0 ) - 8005e08: 681b ldr r3, [r3, #0] - 8005e0a: f003 0307 and.w r3, r3, #7 - 8005e0e: 683a ldr r2, [r7, #0] - 8005e10: 429a cmp r2, r3 - 8005e12: d001 beq.n 8005e18 + 800228a: 4b6e ldr r3, [pc, #440] @ (8002444 ) + 800228c: 681b ldr r3, [r3, #0] + 800228e: f003 0307 and.w r3, r3, #7 + 8002292: 683a ldr r2, [r7, #0] + 8002294: 429a cmp r2, r3 + 8002296: d001 beq.n 800229c { return HAL_ERROR; - 8005e14: 2301 movs r3, #1 - 8005e16: e0cf b.n 8005fb8 + 8002298: 2301 movs r3, #1 + 800229a: e0cf b.n 800243c } } /*----------------- HCLK Configuration prior to SYSCLK----------------------*/ /* Apply higher HCLK prescaler request here to ensure CPU clock is not of of spec when SYSCLK is increased */ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 8005e18: 687b ldr r3, [r7, #4] - 8005e1a: 681b ldr r3, [r3, #0] - 8005e1c: f003 0302 and.w r3, r3, #2 - 8005e20: 2b00 cmp r3, #0 - 8005e22: d010 beq.n 8005e46 + 800229c: 687b ldr r3, [r7, #4] + 800229e: 681b ldr r3, [r3, #0] + 80022a0: f003 0302 and.w r3, r3, #2 + 80022a4: 2b00 cmp r3, #0 + 80022a6: d010 beq.n 80022ca { assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); if(RCC_ClkInitStruct->AHBCLKDivider > READ_BIT(RCC->CFGR, RCC_CFGR_HPRE)) - 8005e24: 687b ldr r3, [r7, #4] - 8005e26: 689a ldr r2, [r3, #8] - 8005e28: 4b66 ldr r3, [pc, #408] @ (8005fc4 ) - 8005e2a: 689b ldr r3, [r3, #8] - 8005e2c: f003 03f0 and.w r3, r3, #240 @ 0xf0 - 8005e30: 429a cmp r2, r3 - 8005e32: d908 bls.n 8005e46 + 80022a8: 687b ldr r3, [r7, #4] + 80022aa: 689a ldr r2, [r3, #8] + 80022ac: 4b66 ldr r3, [pc, #408] @ (8002448 ) + 80022ae: 689b ldr r3, [r3, #8] + 80022b0: f003 03f0 and.w r3, r3, #240 @ 0xf0 + 80022b4: 429a cmp r2, r3 + 80022b6: d908 bls.n 80022ca { MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 8005e34: 4b63 ldr r3, [pc, #396] @ (8005fc4 ) - 8005e36: 689b ldr r3, [r3, #8] - 8005e38: f023 02f0 bic.w r2, r3, #240 @ 0xf0 - 8005e3c: 687b ldr r3, [r7, #4] - 8005e3e: 689b ldr r3, [r3, #8] - 8005e40: 4960 ldr r1, [pc, #384] @ (8005fc4 ) - 8005e42: 4313 orrs r3, r2 - 8005e44: 608b str r3, [r1, #8] + 80022b8: 4b63 ldr r3, [pc, #396] @ (8002448 ) + 80022ba: 689b ldr r3, [r3, #8] + 80022bc: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 80022c0: 687b ldr r3, [r7, #4] + 80022c2: 689b ldr r3, [r3, #8] + 80022c4: 4960 ldr r1, [pc, #384] @ (8002448 ) + 80022c6: 4313 orrs r3, r2 + 80022c8: 608b str r3, [r1, #8] } } /*------------------------- SYSCLK Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) - 8005e46: 687b ldr r3, [r7, #4] - 8005e48: 681b ldr r3, [r3, #0] - 8005e4a: f003 0301 and.w r3, r3, #1 - 8005e4e: 2b00 cmp r3, #0 - 8005e50: d04c beq.n 8005eec + 80022ca: 687b ldr r3, [r7, #4] + 80022cc: 681b ldr r3, [r3, #0] + 80022ce: f003 0301 and.w r3, r3, #1 + 80022d2: 2b00 cmp r3, #0 + 80022d4: d04c beq.n 8002370 { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* PLL is selected as System Clock Source */ if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) - 8005e52: 687b ldr r3, [r7, #4] - 8005e54: 685b ldr r3, [r3, #4] - 8005e56: 2b03 cmp r3, #3 - 8005e58: d107 bne.n 8005e6a + 80022d6: 687b ldr r3, [r7, #4] + 80022d8: 685b ldr r3, [r3, #4] + 80022da: 2b03 cmp r3, #3 + 80022dc: d107 bne.n 80022ee { /* Check the PLL ready flag */ if(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 8005e5a: 4b5a ldr r3, [pc, #360] @ (8005fc4 ) - 8005e5c: 681b ldr r3, [r3, #0] - 8005e5e: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 8005e62: 2b00 cmp r3, #0 - 8005e64: d121 bne.n 8005eaa + 80022de: 4b5a ldr r3, [pc, #360] @ (8002448 ) + 80022e0: 681b ldr r3, [r3, #0] + 80022e2: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80022e6: 2b00 cmp r3, #0 + 80022e8: d121 bne.n 800232e { return HAL_ERROR; - 8005e66: 2301 movs r3, #1 - 8005e68: e0a6 b.n 8005fb8 + 80022ea: 2301 movs r3, #1 + 80022ec: e0a6 b.n 800243c #endif } else { /* HSE is selected as System Clock Source */ if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 8005e6a: 687b ldr r3, [r7, #4] - 8005e6c: 685b ldr r3, [r3, #4] - 8005e6e: 2b02 cmp r3, #2 - 8005e70: d107 bne.n 8005e82 + 80022ee: 687b ldr r3, [r7, #4] + 80022f0: 685b ldr r3, [r3, #4] + 80022f2: 2b02 cmp r3, #2 + 80022f4: d107 bne.n 8002306 { /* Check the HSE ready flag */ if(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) - 8005e72: 4b54 ldr r3, [pc, #336] @ (8005fc4 ) - 8005e74: 681b ldr r3, [r3, #0] - 8005e76: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8005e7a: 2b00 cmp r3, #0 - 8005e7c: d115 bne.n 8005eaa + 80022f6: 4b54 ldr r3, [pc, #336] @ (8002448 ) + 80022f8: 681b ldr r3, [r3, #0] + 80022fa: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80022fe: 2b00 cmp r3, #0 + 8002300: d115 bne.n 800232e { return HAL_ERROR; - 8005e7e: 2301 movs r3, #1 - 8005e80: e09a b.n 8005fb8 + 8002302: 2301 movs r3, #1 + 8002304: e09a b.n 800243c } } /* MSI is selected as System Clock Source */ else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_MSI) - 8005e82: 687b ldr r3, [r7, #4] - 8005e84: 685b ldr r3, [r3, #4] - 8005e86: 2b00 cmp r3, #0 - 8005e88: d107 bne.n 8005e9a + 8002306: 687b ldr r3, [r7, #4] + 8002308: 685b ldr r3, [r3, #4] + 800230a: 2b00 cmp r3, #0 + 800230c: d107 bne.n 800231e { /* Check the MSI ready flag */ if(READ_BIT(RCC->CR, RCC_CR_MSIRDY) == 0U) - 8005e8a: 4b4e ldr r3, [pc, #312] @ (8005fc4 ) - 8005e8c: 681b ldr r3, [r3, #0] - 8005e8e: f003 0302 and.w r3, r3, #2 - 8005e92: 2b00 cmp r3, #0 - 8005e94: d109 bne.n 8005eaa + 800230e: 4b4e ldr r3, [pc, #312] @ (8002448 ) + 8002310: 681b ldr r3, [r3, #0] + 8002312: f003 0302 and.w r3, r3, #2 + 8002316: 2b00 cmp r3, #0 + 8002318: d109 bne.n 800232e { return HAL_ERROR; - 8005e96: 2301 movs r3, #1 - 8005e98: e08e b.n 8005fb8 + 800231a: 2301 movs r3, #1 + 800231c: e08e b.n 800243c } /* HSI is selected as System Clock Source */ else { /* Check the HSI ready flag */ if(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) - 8005e9a: 4b4a ldr r3, [pc, #296] @ (8005fc4 ) - 8005e9c: 681b ldr r3, [r3, #0] - 8005e9e: f403 6380 and.w r3, r3, #1024 @ 0x400 - 8005ea2: 2b00 cmp r3, #0 - 8005ea4: d101 bne.n 8005eaa + 800231e: 4b4a ldr r3, [pc, #296] @ (8002448 ) + 8002320: 681b ldr r3, [r3, #0] + 8002322: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8002326: 2b00 cmp r3, #0 + 8002328: d101 bne.n 800232e { return HAL_ERROR; - 8005ea6: 2301 movs r3, #1 - 8005ea8: e086 b.n 8005fb8 + 800232a: 2301 movs r3, #1 + 800232c: e086 b.n 800243c } #endif } MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, RCC_ClkInitStruct->SYSCLKSource); - 8005eaa: 4b46 ldr r3, [pc, #280] @ (8005fc4 ) - 8005eac: 689b ldr r3, [r3, #8] - 8005eae: f023 0203 bic.w r2, r3, #3 - 8005eb2: 687b ldr r3, [r7, #4] - 8005eb4: 685b ldr r3, [r3, #4] - 8005eb6: 4943 ldr r1, [pc, #268] @ (8005fc4 ) - 8005eb8: 4313 orrs r3, r2 - 8005eba: 608b str r3, [r1, #8] + 800232e: 4b46 ldr r3, [pc, #280] @ (8002448 ) + 8002330: 689b ldr r3, [r3, #8] + 8002332: f023 0203 bic.w r2, r3, #3 + 8002336: 687b ldr r3, [r7, #4] + 8002338: 685b ldr r3, [r3, #4] + 800233a: 4943 ldr r1, [pc, #268] @ (8002448 ) + 800233c: 4313 orrs r3, r2 + 800233e: 608b str r3, [r1, #8] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8005ebc: f7fe f92e bl 800411c - 8005ec0: 60f8 str r0, [r7, #12] + 8002340: f7ff f8c0 bl 80014c4 + 8002344: 60f8 str r0, [r7, #12] while(__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 8005ec2: e00a b.n 8005eda + 8002346: e00a b.n 800235e { if((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) - 8005ec4: f7fe f92a bl 800411c - 8005ec8: 4602 mov r2, r0 - 8005eca: 68fb ldr r3, [r7, #12] - 8005ecc: 1ad3 subs r3, r2, r3 - 8005ece: f241 3288 movw r2, #5000 @ 0x1388 - 8005ed2: 4293 cmp r3, r2 - 8005ed4: d901 bls.n 8005eda + 8002348: f7ff f8bc bl 80014c4 + 800234c: 4602 mov r2, r0 + 800234e: 68fb ldr r3, [r7, #12] + 8002350: 1ad3 subs r3, r2, r3 + 8002352: f241 3288 movw r2, #5000 @ 0x1388 + 8002356: 4293 cmp r3, r2 + 8002358: d901 bls.n 800235e { return HAL_TIMEOUT; - 8005ed6: 2303 movs r3, #3 - 8005ed8: e06e b.n 8005fb8 + 800235a: 2303 movs r3, #3 + 800235c: e06e b.n 800243c while(__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 8005eda: 4b3a ldr r3, [pc, #232] @ (8005fc4 ) - 8005edc: 689b ldr r3, [r3, #8] - 8005ede: f003 020c and.w r2, r3, #12 - 8005ee2: 687b ldr r3, [r7, #4] - 8005ee4: 685b ldr r3, [r3, #4] - 8005ee6: 009b lsls r3, r3, #2 - 8005ee8: 429a cmp r2, r3 - 8005eea: d1eb bne.n 8005ec4 + 800235e: 4b3a ldr r3, [pc, #232] @ (8002448 ) + 8002360: 689b ldr r3, [r3, #8] + 8002362: f003 020c and.w r2, r3, #12 + 8002366: 687b ldr r3, [r7, #4] + 8002368: 685b ldr r3, [r3, #4] + 800236a: 009b lsls r3, r3, #2 + 800236c: 429a cmp r2, r3 + 800236e: d1eb bne.n 8002348 } #endif /*----------------- HCLK Configuration after SYSCLK-------------------------*/ /* Apply lower HCLK prescaler request here to ensure CPU clock is not of of spec when SYSCLK is set */ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 8005eec: 687b ldr r3, [r7, #4] - 8005eee: 681b ldr r3, [r3, #0] - 8005ef0: f003 0302 and.w r3, r3, #2 - 8005ef4: 2b00 cmp r3, #0 - 8005ef6: d010 beq.n 8005f1a + 8002370: 687b ldr r3, [r7, #4] + 8002372: 681b ldr r3, [r3, #0] + 8002374: f003 0302 and.w r3, r3, #2 + 8002378: 2b00 cmp r3, #0 + 800237a: d010 beq.n 800239e { if(RCC_ClkInitStruct->AHBCLKDivider < READ_BIT(RCC->CFGR, RCC_CFGR_HPRE)) - 8005ef8: 687b ldr r3, [r7, #4] - 8005efa: 689a ldr r2, [r3, #8] - 8005efc: 4b31 ldr r3, [pc, #196] @ (8005fc4 ) - 8005efe: 689b ldr r3, [r3, #8] - 8005f00: f003 03f0 and.w r3, r3, #240 @ 0xf0 - 8005f04: 429a cmp r2, r3 - 8005f06: d208 bcs.n 8005f1a + 800237c: 687b ldr r3, [r7, #4] + 800237e: 689a ldr r2, [r3, #8] + 8002380: 4b31 ldr r3, [pc, #196] @ (8002448 ) + 8002382: 689b ldr r3, [r3, #8] + 8002384: f003 03f0 and.w r3, r3, #240 @ 0xf0 + 8002388: 429a cmp r2, r3 + 800238a: d208 bcs.n 800239e { MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 8005f08: 4b2e ldr r3, [pc, #184] @ (8005fc4 ) - 8005f0a: 689b ldr r3, [r3, #8] - 8005f0c: f023 02f0 bic.w r2, r3, #240 @ 0xf0 - 8005f10: 687b ldr r3, [r7, #4] - 8005f12: 689b ldr r3, [r3, #8] - 8005f14: 492b ldr r1, [pc, #172] @ (8005fc4 ) - 8005f16: 4313 orrs r3, r2 - 8005f18: 608b str r3, [r1, #8] + 800238c: 4b2e ldr r3, [pc, #184] @ (8002448 ) + 800238e: 689b ldr r3, [r3, #8] + 8002390: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 8002394: 687b ldr r3, [r7, #4] + 8002396: 689b ldr r3, [r3, #8] + 8002398: 492b ldr r1, [pc, #172] @ (8002448 ) + 800239a: 4313 orrs r3, r2 + 800239c: 608b str r3, [r1, #8] } } /* Allow decreasing of the number of wait states (because of lower CPU frequency expected) */ if(FLatency < __HAL_FLASH_GET_LATENCY()) - 8005f1a: 4b29 ldr r3, [pc, #164] @ (8005fc0 ) - 8005f1c: 681b ldr r3, [r3, #0] - 8005f1e: f003 0307 and.w r3, r3, #7 - 8005f22: 683a ldr r2, [r7, #0] - 8005f24: 429a cmp r2, r3 - 8005f26: d210 bcs.n 8005f4a + 800239e: 4b29 ldr r3, [pc, #164] @ (8002444 ) + 80023a0: 681b ldr r3, [r3, #0] + 80023a2: f003 0307 and.w r3, r3, #7 + 80023a6: 683a ldr r2, [r7, #0] + 80023a8: 429a cmp r2, r3 + 80023aa: d210 bcs.n 80023ce { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 8005f28: 4b25 ldr r3, [pc, #148] @ (8005fc0 ) - 8005f2a: 681b ldr r3, [r3, #0] - 8005f2c: f023 0207 bic.w r2, r3, #7 - 8005f30: 4923 ldr r1, [pc, #140] @ (8005fc0 ) - 8005f32: 683b ldr r3, [r7, #0] - 8005f34: 4313 orrs r3, r2 - 8005f36: 600b str r3, [r1, #0] + 80023ac: 4b25 ldr r3, [pc, #148] @ (8002444 ) + 80023ae: 681b ldr r3, [r3, #0] + 80023b0: f023 0207 bic.w r2, r3, #7 + 80023b4: 4923 ldr r1, [pc, #140] @ (8002444 ) + 80023b6: 683b ldr r3, [r7, #0] + 80023b8: 4313 orrs r3, r2 + 80023ba: 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) - 8005f38: 4b21 ldr r3, [pc, #132] @ (8005fc0 ) - 8005f3a: 681b ldr r3, [r3, #0] - 8005f3c: f003 0307 and.w r3, r3, #7 - 8005f40: 683a ldr r2, [r7, #0] - 8005f42: 429a cmp r2, r3 - 8005f44: d001 beq.n 8005f4a + 80023bc: 4b21 ldr r3, [pc, #132] @ (8002444 ) + 80023be: 681b ldr r3, [r3, #0] + 80023c0: f003 0307 and.w r3, r3, #7 + 80023c4: 683a ldr r2, [r7, #0] + 80023c6: 429a cmp r2, r3 + 80023c8: d001 beq.n 80023ce { return HAL_ERROR; - 8005f46: 2301 movs r3, #1 - 8005f48: e036 b.n 8005fb8 + 80023ca: 2301 movs r3, #1 + 80023cc: e036 b.n 800243c } } /*-------------------------- PCLK1 Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 8005f4a: 687b ldr r3, [r7, #4] - 8005f4c: 681b ldr r3, [r3, #0] - 8005f4e: f003 0304 and.w r3, r3, #4 - 8005f52: 2b00 cmp r3, #0 - 8005f54: d008 beq.n 8005f68 + 80023ce: 687b ldr r3, [r7, #4] + 80023d0: 681b ldr r3, [r3, #0] + 80023d2: f003 0304 and.w r3, r3, #4 + 80023d6: 2b00 cmp r3, #0 + 80023d8: d008 beq.n 80023ec { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); - 8005f56: 4b1b ldr r3, [pc, #108] @ (8005fc4 ) - 8005f58: 689b ldr r3, [r3, #8] - 8005f5a: f423 62e0 bic.w r2, r3, #1792 @ 0x700 - 8005f5e: 687b ldr r3, [r7, #4] - 8005f60: 68db ldr r3, [r3, #12] - 8005f62: 4918 ldr r1, [pc, #96] @ (8005fc4 ) - 8005f64: 4313 orrs r3, r2 - 8005f66: 608b str r3, [r1, #8] + 80023da: 4b1b ldr r3, [pc, #108] @ (8002448 ) + 80023dc: 689b ldr r3, [r3, #8] + 80023de: f423 62e0 bic.w r2, r3, #1792 @ 0x700 + 80023e2: 687b ldr r3, [r7, #4] + 80023e4: 68db ldr r3, [r3, #12] + 80023e6: 4918 ldr r1, [pc, #96] @ (8002448 ) + 80023e8: 4313 orrs r3, r2 + 80023ea: 608b str r3, [r1, #8] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 8005f68: 687b ldr r3, [r7, #4] - 8005f6a: 681b ldr r3, [r3, #0] - 8005f6c: f003 0308 and.w r3, r3, #8 - 8005f70: 2b00 cmp r3, #0 - 8005f72: d009 beq.n 8005f88 + 80023ec: 687b ldr r3, [r7, #4] + 80023ee: 681b ldr r3, [r3, #0] + 80023f0: f003 0308 and.w r3, r3, #8 + 80023f4: 2b00 cmp r3, #0 + 80023f6: d009 beq.n 800240c { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); - 8005f74: 4b13 ldr r3, [pc, #76] @ (8005fc4 ) - 8005f76: 689b ldr r3, [r3, #8] - 8005f78: f423 5260 bic.w r2, r3, #14336 @ 0x3800 - 8005f7c: 687b ldr r3, [r7, #4] - 8005f7e: 691b ldr r3, [r3, #16] - 8005f80: 00db lsls r3, r3, #3 - 8005f82: 4910 ldr r1, [pc, #64] @ (8005fc4 ) - 8005f84: 4313 orrs r3, r2 - 8005f86: 608b str r3, [r1, #8] + 80023f8: 4b13 ldr r3, [pc, #76] @ (8002448 ) + 80023fa: 689b ldr r3, [r3, #8] + 80023fc: f423 5260 bic.w r2, r3, #14336 @ 0x3800 + 8002400: 687b ldr r3, [r7, #4] + 8002402: 691b ldr r3, [r3, #16] + 8002404: 00db lsls r3, r3, #3 + 8002406: 4910 ldr r1, [pc, #64] @ (8002448 ) + 8002408: 4313 orrs r3, r2 + 800240a: 608b str r3, [r1, #8] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> (AHBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos] & 0x1FU); - 8005f88: f000 f824 bl 8005fd4 - 8005f8c: 4602 mov r2, r0 - 8005f8e: 4b0d ldr r3, [pc, #52] @ (8005fc4 ) - 8005f90: 689b ldr r3, [r3, #8] - 8005f92: 091b lsrs r3, r3, #4 - 8005f94: f003 030f and.w r3, r3, #15 - 8005f98: 490b ldr r1, [pc, #44] @ (8005fc8 ) - 8005f9a: 5ccb ldrb r3, [r1, r3] - 8005f9c: f003 031f and.w r3, r3, #31 - 8005fa0: fa22 f303 lsr.w r3, r2, r3 - 8005fa4: 4a09 ldr r2, [pc, #36] @ (8005fcc ) - 8005fa6: 6013 str r3, [r2, #0] + 800240c: f000 f824 bl 8002458 + 8002410: 4602 mov r2, r0 + 8002412: 4b0d ldr r3, [pc, #52] @ (8002448 ) + 8002414: 689b ldr r3, [r3, #8] + 8002416: 091b lsrs r3, r3, #4 + 8002418: f003 030f and.w r3, r3, #15 + 800241c: 490b ldr r1, [pc, #44] @ (800244c ) + 800241e: 5ccb ldrb r3, [r1, r3] + 8002420: f003 031f and.w r3, r3, #31 + 8002424: fa22 f303 lsr.w r3, r2, r3 + 8002428: 4a09 ldr r2, [pc, #36] @ (8002450 ) + 800242a: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ status = HAL_InitTick(uwTickPrio); - 8005fa8: 4b09 ldr r3, [pc, #36] @ (8005fd0 ) - 8005faa: 681b ldr r3, [r3, #0] - 8005fac: 4618 mov r0, r3 - 8005fae: f7fe f865 bl 800407c - 8005fb2: 4603 mov r3, r0 - 8005fb4: 72fb strb r3, [r7, #11] + 800242c: 4b09 ldr r3, [pc, #36] @ (8002454 ) + 800242e: 681b ldr r3, [r3, #0] + 8002430: 4618 mov r0, r3 + 8002432: f7fe fff7 bl 8001424 + 8002436: 4603 mov r3, r0 + 8002438: 72fb strb r3, [r7, #11] return status; - 8005fb6: 7afb ldrb r3, [r7, #11] + 800243a: 7afb ldrb r3, [r7, #11] } - 8005fb8: 4618 mov r0, r3 - 8005fba: 3710 adds r7, #16 - 8005fbc: 46bd mov sp, r7 - 8005fbe: bd80 pop {r7, pc} - 8005fc0: 40022000 .word 0x40022000 - 8005fc4: 40021000 .word 0x40021000 - 8005fc8: 0800b93c .word 0x0800b93c - 8005fcc: 20000000 .word 0x20000000 - 8005fd0: 20000004 .word 0x20000004 + 800243c: 4618 mov r0, r3 + 800243e: 3710 adds r7, #16 + 8002440: 46bd mov sp, r7 + 8002442: bd80 pop {r7, pc} + 8002444: 40022000 .word 0x40022000 + 8002448: 40021000 .word 0x40021000 + 800244c: 08005648 .word 0x08005648 + 8002450: 20000000 .word 0x20000000 + 8002454: 20000004 .word 0x20000004 -08005fd4 : +08002458 : * * * @retval SYSCLK frequency */ uint32_t HAL_RCC_GetSysClockFreq(void) { - 8005fd4: b480 push {r7} - 8005fd6: b089 sub sp, #36 @ 0x24 - 8005fd8: af00 add r7, sp, #0 + 8002458: b480 push {r7} + 800245a: b089 sub sp, #36 @ 0x24 + 800245c: af00 add r7, sp, #0 uint32_t msirange = 0U, sysclockfreq = 0U; - 8005fda: 2300 movs r3, #0 - 8005fdc: 61fb str r3, [r7, #28] - 8005fde: 2300 movs r3, #0 - 8005fe0: 61bb str r3, [r7, #24] + 800245e: 2300 movs r3, #0 + 8002460: 61fb str r3, [r7, #28] + 8002462: 2300 movs r3, #0 + 8002464: 61bb str r3, [r7, #24] uint32_t pllvco, pllsource, pllr, pllm; /* no init needed */ uint32_t sysclk_source, pll_oscsource; sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE(); - 8005fe2: 4b3e ldr r3, [pc, #248] @ (80060dc ) - 8005fe4: 689b ldr r3, [r3, #8] - 8005fe6: f003 030c and.w r3, r3, #12 - 8005fea: 613b str r3, [r7, #16] + 8002466: 4b3e ldr r3, [pc, #248] @ (8002560 ) + 8002468: 689b ldr r3, [r3, #8] + 800246a: f003 030c and.w r3, r3, #12 + 800246e: 613b str r3, [r7, #16] pll_oscsource = __HAL_RCC_GET_PLL_OSCSOURCE(); - 8005fec: 4b3b ldr r3, [pc, #236] @ (80060dc ) - 8005fee: 68db ldr r3, [r3, #12] - 8005ff0: f003 0303 and.w r3, r3, #3 - 8005ff4: 60fb str r3, [r7, #12] + 8002470: 4b3b ldr r3, [pc, #236] @ (8002560 ) + 8002472: 68db ldr r3, [r3, #12] + 8002474: f003 0303 and.w r3, r3, #3 + 8002478: 60fb str r3, [r7, #12] if((sysclk_source == RCC_CFGR_SWS_MSI) || - 8005ff6: 693b ldr r3, [r7, #16] - 8005ff8: 2b00 cmp r3, #0 - 8005ffa: d005 beq.n 8006008 - 8005ffc: 693b ldr r3, [r7, #16] - 8005ffe: 2b0c cmp r3, #12 - 8006000: d121 bne.n 8006046 + 800247a: 693b ldr r3, [r7, #16] + 800247c: 2b00 cmp r3, #0 + 800247e: d005 beq.n 800248c + 8002480: 693b ldr r3, [r7, #16] + 8002482: 2b0c cmp r3, #12 + 8002484: d121 bne.n 80024ca ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_oscsource == RCC_PLLSOURCE_MSI))) - 8006002: 68fb ldr r3, [r7, #12] - 8006004: 2b01 cmp r3, #1 - 8006006: d11e bne.n 8006046 + 8002486: 68fb ldr r3, [r7, #12] + 8002488: 2b01 cmp r3, #1 + 800248a: d11e bne.n 80024ca { /* MSI or PLL with MSI source used as system clock source */ /* Get SYSCLK source */ if(READ_BIT(RCC->CR, RCC_CR_MSIRGSEL) == 0U) - 8006008: 4b34 ldr r3, [pc, #208] @ (80060dc ) - 800600a: 681b ldr r3, [r3, #0] - 800600c: f003 0308 and.w r3, r3, #8 - 8006010: 2b00 cmp r3, #0 - 8006012: d107 bne.n 8006024 + 800248c: 4b34 ldr r3, [pc, #208] @ (8002560 ) + 800248e: 681b ldr r3, [r3, #0] + 8002490: f003 0308 and.w r3, r3, #8 + 8002494: 2b00 cmp r3, #0 + 8002496: d107 bne.n 80024a8 { /* MSISRANGE from RCC_CSR applies */ msirange = READ_BIT(RCC->CSR, RCC_CSR_MSISRANGE) >> RCC_CSR_MSISRANGE_Pos; - 8006014: 4b31 ldr r3, [pc, #196] @ (80060dc ) - 8006016: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 - 800601a: 0a1b lsrs r3, r3, #8 - 800601c: f003 030f and.w r3, r3, #15 - 8006020: 61fb str r3, [r7, #28] - 8006022: e005 b.n 8006030 + 8002498: 4b31 ldr r3, [pc, #196] @ (8002560 ) + 800249a: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 800249e: 0a1b lsrs r3, r3, #8 + 80024a0: f003 030f and.w r3, r3, #15 + 80024a4: 61fb str r3, [r7, #28] + 80024a6: e005 b.n 80024b4 } else { /* MSIRANGE from RCC_CR applies */ msirange = READ_BIT(RCC->CR, RCC_CR_MSIRANGE) >> RCC_CR_MSIRANGE_Pos; - 8006024: 4b2d ldr r3, [pc, #180] @ (80060dc ) - 8006026: 681b ldr r3, [r3, #0] - 8006028: 091b lsrs r3, r3, #4 - 800602a: f003 030f and.w r3, r3, #15 - 800602e: 61fb str r3, [r7, #28] + 80024a8: 4b2d ldr r3, [pc, #180] @ (8002560 ) + 80024aa: 681b ldr r3, [r3, #0] + 80024ac: 091b lsrs r3, r3, #4 + 80024ae: f003 030f and.w r3, r3, #15 + 80024b2: 61fb str r3, [r7, #28] } /*MSI frequency range in HZ*/ msirange = MSIRangeTable[msirange]; - 8006030: 4a2b ldr r2, [pc, #172] @ (80060e0 ) - 8006032: 69fb ldr r3, [r7, #28] - 8006034: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8006038: 61fb str r3, [r7, #28] + 80024b4: 4a2b ldr r2, [pc, #172] @ (8002564 ) + 80024b6: 69fb ldr r3, [r7, #28] + 80024b8: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 80024bc: 61fb str r3, [r7, #28] if(sysclk_source == RCC_CFGR_SWS_MSI) - 800603a: 693b ldr r3, [r7, #16] - 800603c: 2b00 cmp r3, #0 - 800603e: d10d bne.n 800605c + 80024be: 693b ldr r3, [r7, #16] + 80024c0: 2b00 cmp r3, #0 + 80024c2: d10d bne.n 80024e0 { /* MSI used as system clock source */ sysclockfreq = msirange; - 8006040: 69fb ldr r3, [r7, #28] - 8006042: 61bb str r3, [r7, #24] + 80024c4: 69fb ldr r3, [r7, #28] + 80024c6: 61bb str r3, [r7, #24] if(sysclk_source == RCC_CFGR_SWS_MSI) - 8006044: e00a b.n 800605c + 80024c8: e00a b.n 80024e0 } } else if(sysclk_source == RCC_CFGR_SWS_HSI) - 8006046: 693b ldr r3, [r7, #16] - 8006048: 2b04 cmp r3, #4 - 800604a: d102 bne.n 8006052 + 80024ca: 693b ldr r3, [r7, #16] + 80024cc: 2b04 cmp r3, #4 + 80024ce: d102 bne.n 80024d6 { /* HSI used as system clock source */ sysclockfreq = HSI_VALUE; - 800604c: 4b25 ldr r3, [pc, #148] @ (80060e4 ) - 800604e: 61bb str r3, [r7, #24] - 8006050: e004 b.n 800605c + 80024d0: 4b25 ldr r3, [pc, #148] @ (8002568 ) + 80024d2: 61bb str r3, [r7, #24] + 80024d4: e004 b.n 80024e0 } else if(sysclk_source == RCC_CFGR_SWS_HSE) - 8006052: 693b ldr r3, [r7, #16] - 8006054: 2b08 cmp r3, #8 - 8006056: d101 bne.n 800605c + 80024d6: 693b ldr r3, [r7, #16] + 80024d8: 2b08 cmp r3, #8 + 80024da: d101 bne.n 80024e0 { /* HSE used as system clock source */ sysclockfreq = HSE_VALUE; - 8006058: 4b23 ldr r3, [pc, #140] @ (80060e8 ) - 800605a: 61bb str r3, [r7, #24] + 80024dc: 4b23 ldr r3, [pc, #140] @ (800256c ) + 80024de: 61bb str r3, [r7, #24] else { /* unexpected case: sysclockfreq at 0 */ } if(sysclk_source == RCC_CFGR_SWS_PLL) - 800605c: 693b ldr r3, [r7, #16] - 800605e: 2b0c cmp r3, #12 - 8006060: d134 bne.n 80060cc + 80024e0: 693b ldr r3, [r7, #16] + 80024e2: 2b0c cmp r3, #12 + 80024e4: d134 bne.n 8002550 /* PLL used as system clock source */ /* PLL_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE) * PLLN / PLLM SYSCLK = PLL_VCO / PLLR */ pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); - 8006062: 4b1e ldr r3, [pc, #120] @ (80060dc ) - 8006064: 68db ldr r3, [r3, #12] - 8006066: f003 0303 and.w r3, r3, #3 - 800606a: 60bb str r3, [r7, #8] + 80024e6: 4b1e ldr r3, [pc, #120] @ (8002560 ) + 80024e8: 68db ldr r3, [r3, #12] + 80024ea: f003 0303 and.w r3, r3, #3 + 80024ee: 60bb str r3, [r7, #8] switch (pllsource) - 800606c: 68bb ldr r3, [r7, #8] - 800606e: 2b02 cmp r3, #2 - 8006070: d003 beq.n 800607a - 8006072: 68bb ldr r3, [r7, #8] - 8006074: 2b03 cmp r3, #3 - 8006076: d003 beq.n 8006080 - 8006078: e005 b.n 8006086 + 80024f0: 68bb ldr r3, [r7, #8] + 80024f2: 2b02 cmp r3, #2 + 80024f4: d003 beq.n 80024fe + 80024f6: 68bb ldr r3, [r7, #8] + 80024f8: 2b03 cmp r3, #3 + 80024fa: d003 beq.n 8002504 + 80024fc: e005 b.n 800250a { case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */ pllvco = HSI_VALUE; - 800607a: 4b1a ldr r3, [pc, #104] @ (80060e4 ) - 800607c: 617b str r3, [r7, #20] + 80024fe: 4b1a ldr r3, [pc, #104] @ (8002568 ) + 8002500: 617b str r3, [r7, #20] break; - 800607e: e005 b.n 800608c + 8002502: e005 b.n 8002510 case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ pllvco = HSE_VALUE; - 8006080: 4b19 ldr r3, [pc, #100] @ (80060e8 ) - 8006082: 617b str r3, [r7, #20] + 8002504: 4b19 ldr r3, [pc, #100] @ (800256c ) + 8002506: 617b str r3, [r7, #20] break; - 8006084: e002 b.n 800608c + 8002508: e002 b.n 8002510 case RCC_PLLSOURCE_MSI: /* MSI used as PLL clock source */ default: pllvco = msirange; - 8006086: 69fb ldr r3, [r7, #28] - 8006088: 617b str r3, [r7, #20] + 800250a: 69fb ldr r3, [r7, #28] + 800250c: 617b str r3, [r7, #20] break; - 800608a: bf00 nop + 800250e: bf00 nop } pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; - 800608c: 4b13 ldr r3, [pc, #76] @ (80060dc ) - 800608e: 68db ldr r3, [r3, #12] - 8006090: 091b lsrs r3, r3, #4 - 8006092: f003 0307 and.w r3, r3, #7 - 8006096: 3301 adds r3, #1 - 8006098: 607b str r3, [r7, #4] + 8002510: 4b13 ldr r3, [pc, #76] @ (8002560 ) + 8002512: 68db ldr r3, [r3, #12] + 8002514: 091b lsrs r3, r3, #4 + 8002516: f003 0307 and.w r3, r3, #7 + 800251a: 3301 adds r3, #1 + 800251c: 607b str r3, [r7, #4] pllvco = (pllvco * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)) / pllm; - 800609a: 4b10 ldr r3, [pc, #64] @ (80060dc ) - 800609c: 68db ldr r3, [r3, #12] - 800609e: 0a1b lsrs r3, r3, #8 - 80060a0: f003 037f and.w r3, r3, #127 @ 0x7f - 80060a4: 697a ldr r2, [r7, #20] - 80060a6: fb03 f202 mul.w r2, r3, r2 - 80060aa: 687b ldr r3, [r7, #4] - 80060ac: fbb2 f3f3 udiv r3, r2, r3 - 80060b0: 617b str r3, [r7, #20] + 800251e: 4b10 ldr r3, [pc, #64] @ (8002560 ) + 8002520: 68db ldr r3, [r3, #12] + 8002522: 0a1b lsrs r3, r3, #8 + 8002524: f003 037f and.w r3, r3, #127 @ 0x7f + 8002528: 697a ldr r2, [r7, #20] + 800252a: fb03 f202 mul.w r2, r3, r2 + 800252e: 687b ldr r3, [r7, #4] + 8002530: fbb2 f3f3 udiv r3, r2, r3 + 8002534: 617b str r3, [r7, #20] pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U; - 80060b2: 4b0a ldr r3, [pc, #40] @ (80060dc ) - 80060b4: 68db ldr r3, [r3, #12] - 80060b6: 0e5b lsrs r3, r3, #25 - 80060b8: f003 0303 and.w r3, r3, #3 - 80060bc: 3301 adds r3, #1 - 80060be: 005b lsls r3, r3, #1 - 80060c0: 603b str r3, [r7, #0] + 8002536: 4b0a ldr r3, [pc, #40] @ (8002560 ) + 8002538: 68db ldr r3, [r3, #12] + 800253a: 0e5b lsrs r3, r3, #25 + 800253c: f003 0303 and.w r3, r3, #3 + 8002540: 3301 adds r3, #1 + 8002542: 005b lsls r3, r3, #1 + 8002544: 603b str r3, [r7, #0] sysclockfreq = pllvco / pllr; - 80060c2: 697a ldr r2, [r7, #20] - 80060c4: 683b ldr r3, [r7, #0] - 80060c6: fbb2 f3f3 udiv r3, r2, r3 - 80060ca: 61bb str r3, [r7, #24] + 8002546: 697a ldr r2, [r7, #20] + 8002548: 683b ldr r3, [r7, #0] + 800254a: fbb2 f3f3 udiv r3, r2, r3 + 800254e: 61bb str r3, [r7, #24] } return sysclockfreq; - 80060cc: 69bb ldr r3, [r7, #24] + 8002550: 69bb ldr r3, [r7, #24] } - 80060ce: 4618 mov r0, r3 - 80060d0: 3724 adds r7, #36 @ 0x24 - 80060d2: 46bd mov sp, r7 - 80060d4: f85d 7b04 ldr.w r7, [sp], #4 - 80060d8: 4770 bx lr - 80060da: bf00 nop - 80060dc: 40021000 .word 0x40021000 - 80060e0: 0800b954 .word 0x0800b954 - 80060e4: 00f42400 .word 0x00f42400 - 80060e8: 007a1200 .word 0x007a1200 + 8002552: 4618 mov r0, r3 + 8002554: 3724 adds r7, #36 @ 0x24 + 8002556: 46bd mov sp, r7 + 8002558: f85d 7b04 ldr.w r7, [sp], #4 + 800255c: 4770 bx lr + 800255e: bf00 nop + 8002560: 40021000 .word 0x40021000 + 8002564: 08005658 .word 0x08005658 + 8002568: 00f42400 .word 0x00f42400 + 800256c: 007a1200 .word 0x007a1200 -080060ec : - * - * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. - * @retval HCLK frequency in Hz - */ -uint32_t HAL_RCC_GetHCLKFreq(void) -{ - 80060ec: b480 push {r7} - 80060ee: af00 add r7, sp, #0 - return SystemCoreClock; - 80060f0: 4b03 ldr r3, [pc, #12] @ (8006100 ) - 80060f2: 681b ldr r3, [r3, #0] -} - 80060f4: 4618 mov r0, r3 - 80060f6: 46bd mov sp, r7 - 80060f8: f85d 7b04 ldr.w r7, [sp], #4 - 80060fc: 4770 bx lr - 80060fe: bf00 nop - 8006100: 20000000 .word 0x20000000 - -08006104 : - * @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 in Hz - */ -uint32_t HAL_RCC_GetPCLK1Freq(void) -{ - 8006104: b580 push {r7, lr} - 8006106: af00 add r7, sp, #0 - /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ - return (HAL_RCC_GetHCLKFreq() >> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos] & 0x1FU)); - 8006108: f7ff fff0 bl 80060ec - 800610c: 4602 mov r2, r0 - 800610e: 4b06 ldr r3, [pc, #24] @ (8006128 ) - 8006110: 689b ldr r3, [r3, #8] - 8006112: 0a1b lsrs r3, r3, #8 - 8006114: f003 0307 and.w r3, r3, #7 - 8006118: 4904 ldr r1, [pc, #16] @ (800612c ) - 800611a: 5ccb ldrb r3, [r1, r3] - 800611c: f003 031f and.w r3, r3, #31 - 8006120: fa22 f303 lsr.w r3, r2, r3 -} - 8006124: 4618 mov r0, r3 - 8006126: bd80 pop {r7, pc} - 8006128: 40021000 .word 0x40021000 - 800612c: 0800b94c .word 0x0800b94c - -08006130 : - * @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 in Hz - */ -uint32_t HAL_RCC_GetPCLK2Freq(void) -{ - 8006130: b580 push {r7, lr} - 8006132: af00 add r7, sp, #0 - /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ - return (HAL_RCC_GetHCLKFreq()>> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos] & 0x1FU)); - 8006134: f7ff ffda bl 80060ec - 8006138: 4602 mov r2, r0 - 800613a: 4b06 ldr r3, [pc, #24] @ (8006154 ) - 800613c: 689b ldr r3, [r3, #8] - 800613e: 0adb lsrs r3, r3, #11 - 8006140: f003 0307 and.w r3, r3, #7 - 8006144: 4904 ldr r1, [pc, #16] @ (8006158 ) - 8006146: 5ccb ldrb r3, [r1, r3] - 8006148: f003 031f and.w r3, r3, #31 - 800614c: fa22 f303 lsr.w r3, r2, r3 -} - 8006150: 4618 mov r0, r3 - 8006152: bd80 pop {r7, pc} - 8006154: 40021000 .word 0x40021000 - 8006158: 0800b94c .word 0x0800b94c - -0800615c : +08002570 : voltage range. * @param msirange MSI range value from RCC_MSIRANGE_0 to RCC_MSIRANGE_11 * @retval HAL status */ static HAL_StatusTypeDef RCC_SetFlashLatencyFromMSIRange(uint32_t msirange) { - 800615c: b580 push {r7, lr} - 800615e: b086 sub sp, #24 - 8006160: af00 add r7, sp, #0 - 8006162: 6078 str r0, [r7, #4] + 8002570: b580 push {r7, lr} + 8002572: b086 sub sp, #24 + 8002574: af00 add r7, sp, #0 + 8002576: 6078 str r0, [r7, #4] uint32_t vos; uint32_t latency = FLASH_LATENCY_0; /* default value 0WS */ - 8006164: 2300 movs r3, #0 - 8006166: 613b str r3, [r7, #16] + 8002578: 2300 movs r3, #0 + 800257a: 613b str r3, [r7, #16] if(__HAL_RCC_PWR_IS_CLK_ENABLED()) - 8006168: 4b2a ldr r3, [pc, #168] @ (8006214 ) - 800616a: 6d9b ldr r3, [r3, #88] @ 0x58 - 800616c: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 8006170: 2b00 cmp r3, #0 - 8006172: d003 beq.n 800617c + 800257c: 4b2a ldr r3, [pc, #168] @ (8002628 ) + 800257e: 6d9b ldr r3, [r3, #88] @ 0x58 + 8002580: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8002584: 2b00 cmp r3, #0 + 8002586: d003 beq.n 8002590 { vos = HAL_PWREx_GetVoltageRange(); - 8006174: f7ff f9b6 bl 80054e4 - 8006178: 6178 str r0, [r7, #20] - 800617a: e014 b.n 80061a6 + 8002588: f7ff fa44 bl 8001a14 + 800258c: 6178 str r0, [r7, #20] + 800258e: e014 b.n 80025ba } else { __HAL_RCC_PWR_CLK_ENABLE(); - 800617c: 4b25 ldr r3, [pc, #148] @ (8006214 ) - 800617e: 6d9b ldr r3, [r3, #88] @ 0x58 - 8006180: 4a24 ldr r2, [pc, #144] @ (8006214 ) - 8006182: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 - 8006186: 6593 str r3, [r2, #88] @ 0x58 - 8006188: 4b22 ldr r3, [pc, #136] @ (8006214 ) - 800618a: 6d9b ldr r3, [r3, #88] @ 0x58 - 800618c: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 8006190: 60fb str r3, [r7, #12] - 8006192: 68fb ldr r3, [r7, #12] + 8002590: 4b25 ldr r3, [pc, #148] @ (8002628 ) + 8002592: 6d9b ldr r3, [r3, #88] @ 0x58 + 8002594: 4a24 ldr r2, [pc, #144] @ (8002628 ) + 8002596: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 800259a: 6593 str r3, [r2, #88] @ 0x58 + 800259c: 4b22 ldr r3, [pc, #136] @ (8002628 ) + 800259e: 6d9b ldr r3, [r3, #88] @ 0x58 + 80025a0: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80025a4: 60fb str r3, [r7, #12] + 80025a6: 68fb ldr r3, [r7, #12] vos = HAL_PWREx_GetVoltageRange(); - 8006194: f7ff f9a6 bl 80054e4 - 8006198: 6178 str r0, [r7, #20] + 80025a8: f7ff fa34 bl 8001a14 + 80025ac: 6178 str r0, [r7, #20] __HAL_RCC_PWR_CLK_DISABLE(); - 800619a: 4b1e ldr r3, [pc, #120] @ (8006214 ) - 800619c: 6d9b ldr r3, [r3, #88] @ 0x58 - 800619e: 4a1d ldr r2, [pc, #116] @ (8006214 ) - 80061a0: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 - 80061a4: 6593 str r3, [r2, #88] @ 0x58 + 80025ae: 4b1e ldr r3, [pc, #120] @ (8002628 ) + 80025b0: 6d9b ldr r3, [r3, #88] @ 0x58 + 80025b2: 4a1d ldr r2, [pc, #116] @ (8002628 ) + 80025b4: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 80025b8: 6593 str r3, [r2, #88] @ 0x58 } if(vos == PWR_REGULATOR_VOLTAGE_SCALE1) - 80061a6: 697b ldr r3, [r7, #20] - 80061a8: f5b3 7f00 cmp.w r3, #512 @ 0x200 - 80061ac: d10b bne.n 80061c6 + 80025ba: 697b ldr r3, [r7, #20] + 80025bc: f5b3 7f00 cmp.w r3, #512 @ 0x200 + 80025c0: d10b bne.n 80025da { if(msirange > RCC_MSIRANGE_8) - 80061ae: 687b ldr r3, [r7, #4] - 80061b0: 2b80 cmp r3, #128 @ 0x80 - 80061b2: d919 bls.n 80061e8 + 80025c2: 687b ldr r3, [r7, #4] + 80025c4: 2b80 cmp r3, #128 @ 0x80 + 80025c6: d919 bls.n 80025fc { /* MSI > 16Mhz */ if(msirange > RCC_MSIRANGE_10) - 80061b4: 687b ldr r3, [r7, #4] - 80061b6: 2ba0 cmp r3, #160 @ 0xa0 - 80061b8: d902 bls.n 80061c0 + 80025c8: 687b ldr r3, [r7, #4] + 80025ca: 2ba0 cmp r3, #160 @ 0xa0 + 80025cc: d902 bls.n 80025d4 { /* MSI 48Mhz */ latency = FLASH_LATENCY_2; /* 2WS */ - 80061ba: 2302 movs r3, #2 - 80061bc: 613b str r3, [r7, #16] - 80061be: e013 b.n 80061e8 + 80025ce: 2302 movs r3, #2 + 80025d0: 613b str r3, [r7, #16] + 80025d2: e013 b.n 80025fc } else { /* MSI 24Mhz or 32Mhz */ latency = FLASH_LATENCY_1; /* 1WS */ - 80061c0: 2301 movs r3, #1 - 80061c2: 613b str r3, [r7, #16] - 80061c4: e010 b.n 80061e8 + 80025d4: 2301 movs r3, #1 + 80025d6: 613b str r3, [r7, #16] + 80025d8: e010 b.n 80025fc latency = FLASH_LATENCY_1; /* 1WS */ } /* else MSI < 8Mhz default FLASH_LATENCY_0 0WS */ } #else if(msirange > RCC_MSIRANGE_8) - 80061c6: 687b ldr r3, [r7, #4] - 80061c8: 2b80 cmp r3, #128 @ 0x80 - 80061ca: d902 bls.n 80061d2 + 80025da: 687b ldr r3, [r7, #4] + 80025dc: 2b80 cmp r3, #128 @ 0x80 + 80025de: d902 bls.n 80025e6 { /* MSI > 16Mhz */ latency = FLASH_LATENCY_3; /* 3WS */ - 80061cc: 2303 movs r3, #3 - 80061ce: 613b str r3, [r7, #16] - 80061d0: e00a b.n 80061e8 + 80025e0: 2303 movs r3, #3 + 80025e2: 613b str r3, [r7, #16] + 80025e4: e00a b.n 80025fc } else { if(msirange == RCC_MSIRANGE_8) - 80061d2: 687b ldr r3, [r7, #4] - 80061d4: 2b80 cmp r3, #128 @ 0x80 - 80061d6: d102 bne.n 80061de + 80025e6: 687b ldr r3, [r7, #4] + 80025e8: 2b80 cmp r3, #128 @ 0x80 + 80025ea: d102 bne.n 80025f2 { /* MSI 16Mhz */ latency = FLASH_LATENCY_2; /* 2WS */ - 80061d8: 2302 movs r3, #2 - 80061da: 613b str r3, [r7, #16] - 80061dc: e004 b.n 80061e8 + 80025ec: 2302 movs r3, #2 + 80025ee: 613b str r3, [r7, #16] + 80025f0: e004 b.n 80025fc } else if(msirange == RCC_MSIRANGE_7) - 80061de: 687b ldr r3, [r7, #4] - 80061e0: 2b70 cmp r3, #112 @ 0x70 - 80061e2: d101 bne.n 80061e8 + 80025f2: 687b ldr r3, [r7, #4] + 80025f4: 2b70 cmp r3, #112 @ 0x70 + 80025f6: d101 bne.n 80025fc { /* MSI 8Mhz */ latency = FLASH_LATENCY_1; /* 1WS */ - 80061e4: 2301 movs r3, #1 - 80061e6: 613b str r3, [r7, #16] + 80025f8: 2301 movs r3, #1 + 80025fa: 613b str r3, [r7, #16] } } #endif } __HAL_FLASH_SET_LATENCY(latency); - 80061e8: 4b0b ldr r3, [pc, #44] @ (8006218 ) - 80061ea: 681b ldr r3, [r3, #0] - 80061ec: f023 0207 bic.w r2, r3, #7 - 80061f0: 4909 ldr r1, [pc, #36] @ (8006218 ) - 80061f2: 693b ldr r3, [r7, #16] - 80061f4: 4313 orrs r3, r2 - 80061f6: 600b str r3, [r1, #0] + 80025fc: 4b0b ldr r3, [pc, #44] @ (800262c ) + 80025fe: 681b ldr r3, [r3, #0] + 8002600: f023 0207 bic.w r2, r3, #7 + 8002604: 4909 ldr r1, [pc, #36] @ (800262c ) + 8002606: 693b ldr r3, [r7, #16] + 8002608: 4313 orrs r3, r2 + 800260a: 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() != latency) - 80061f8: 4b07 ldr r3, [pc, #28] @ (8006218 ) - 80061fa: 681b ldr r3, [r3, #0] - 80061fc: f003 0307 and.w r3, r3, #7 - 8006200: 693a ldr r2, [r7, #16] - 8006202: 429a cmp r2, r3 - 8006204: d001 beq.n 800620a + 800260c: 4b07 ldr r3, [pc, #28] @ (800262c ) + 800260e: 681b ldr r3, [r3, #0] + 8002610: f003 0307 and.w r3, r3, #7 + 8002614: 693a ldr r2, [r7, #16] + 8002616: 429a cmp r2, r3 + 8002618: d001 beq.n 800261e { return HAL_ERROR; - 8006206: 2301 movs r3, #1 - 8006208: e000 b.n 800620c + 800261a: 2301 movs r3, #1 + 800261c: e000 b.n 8002620 } return HAL_OK; - 800620a: 2300 movs r3, #0 + 800261e: 2300 movs r3, #0 } - 800620c: 4618 mov r0, r3 - 800620e: 3718 adds r7, #24 - 8006210: 46bd mov sp, r7 - 8006212: bd80 pop {r7, pc} - 8006214: 40021000 .word 0x40021000 - 8006218: 40022000 .word 0x40022000 + 8002620: 4618 mov r0, r3 + 8002622: 3718 adds r7, #24 + 8002624: 46bd mov sp, r7 + 8002626: bd80 pop {r7, pc} + 8002628: 40021000 .word 0x40021000 + 800262c: 40022000 .word 0x40022000 -0800621c : - * the RTC clock source: in this case the access to Backup domain is enabled. - * +08002630 : + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. * @retval HAL status */ -HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) { - 800621c: b580 push {r7, lr} - 800621e: b086 sub sp, #24 - 8006220: af00 add r7, sp, #0 - 8006222: 6078 str r0, [r7, #4] - uint32_t tmpregister, tickstart; /* no init needed */ - HAL_StatusTypeDef ret = HAL_OK; /* Intermediate status */ - 8006224: 2300 movs r3, #0 - 8006226: 74fb strb r3, [r7, #19] - HAL_StatusTypeDef status = HAL_OK; /* Final status */ - 8006228: 2300 movs r3, #0 - 800622a: 74bb strb r3, [r7, #18] - assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); - -#if defined(SAI1) - - /*-------------------------- SAI1 clock source configuration ---------------------*/ - if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1)) - 800622c: 687b ldr r3, [r7, #4] - 800622e: 681b ldr r3, [r3, #0] - 8006230: f403 6300 and.w r3, r3, #2048 @ 0x800 - 8006234: 2b00 cmp r3, #0 - 8006236: d031 beq.n 800629c - { - /* Check the parameters */ - assert_param(IS_RCC_SAI1CLK(PeriphClkInit->Sai1ClockSelection)); - - switch(PeriphClkInit->Sai1ClockSelection) - 8006238: 687b ldr r3, [r7, #4] - 800623a: 6cdb ldr r3, [r3, #76] @ 0x4c - 800623c: f5b3 0f40 cmp.w r3, #12582912 @ 0xc00000 - 8006240: d01a beq.n 8006278 - 8006242: f5b3 0f40 cmp.w r3, #12582912 @ 0xc00000 - 8006246: d814 bhi.n 8006272 - 8006248: 2b00 cmp r3, #0 - 800624a: d009 beq.n 8006260 - 800624c: f5b3 0f00 cmp.w r3, #8388608 @ 0x800000 - 8006250: d10f bne.n 8006272 - case RCC_SAI1CLKSOURCE_PLL: /* PLL is used as clock source for SAI1*/ - /* Enable SAI Clock output generated from System PLL . */ -#if defined(RCC_PLLSAI2_SUPPORT) - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SAI3CLK); -#else - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SAI2CLK); - 8006252: 4b5d ldr r3, [pc, #372] @ (80063c8 ) - 8006254: 68db ldr r3, [r3, #12] - 8006256: 4a5c ldr r2, [pc, #368] @ (80063c8 ) - 8006258: f443 3380 orr.w r3, r3, #65536 @ 0x10000 - 800625c: 60d3 str r3, [r2, #12] -#endif /* RCC_PLLSAI2_SUPPORT */ - /* SAI1 clock source config set later after clock selection check */ - break; - 800625e: e00c b.n 800627a - - case RCC_SAI1CLKSOURCE_PLLSAI1: /* PLLSAI1 is used as clock source for SAI1*/ - /* PLLSAI1 input clock, parameters M, N & P configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_P_UPDATE); - 8006260: 687b ldr r3, [r7, #4] - 8006262: 3304 adds r3, #4 - 8006264: 2100 movs r1, #0 - 8006266: 4618 mov r0, r3 - 8006268: f000 fa44 bl 80066f4 - 800626c: 4603 mov r3, r0 - 800626e: 74fb strb r3, [r7, #19] - /* SAI1 clock source config set later after clock selection check */ - break; - 8006270: e003 b.n 800627a -#endif /* STM32L4P5xx || STM32L4Q5xx || STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */ - /* SAI1 clock source config set later after clock selection check */ - break; - - default: - ret = HAL_ERROR; - 8006272: 2301 movs r3, #1 - 8006274: 74fb strb r3, [r7, #19] - break; - 8006276: e000 b.n 800627a - break; - 8006278: bf00 nop - } - - if(ret == HAL_OK) - 800627a: 7cfb ldrb r3, [r7, #19] - 800627c: 2b00 cmp r3, #0 - 800627e: d10b bne.n 8006298 - { - /* Set the source of SAI1 clock*/ - __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); - 8006280: 4b51 ldr r3, [pc, #324] @ (80063c8 ) - 8006282: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8006286: f423 0240 bic.w r2, r3, #12582912 @ 0xc00000 - 800628a: 687b ldr r3, [r7, #4] - 800628c: 6cdb ldr r3, [r3, #76] @ 0x4c - 800628e: 494e ldr r1, [pc, #312] @ (80063c8 ) - 8006290: 4313 orrs r3, r2 - 8006292: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - 8006296: e001 b.n 800629c - } - else - { - /* set overall return value */ - status = ret; - 8006298: 7cfb ldrb r3, [r7, #19] - 800629a: 74bb strb r3, [r7, #18] - } - } -#endif /* SAI2 */ - - /*-------------------------- RTC clock source configuration ----------------------*/ - if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) - 800629c: 687b ldr r3, [r7, #4] - 800629e: 681b ldr r3, [r3, #0] - 80062a0: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 80062a4: 2b00 cmp r3, #0 - 80062a6: f000 809e beq.w 80063e6 - { - FlagStatus pwrclkchanged = RESET; - 80062aa: 2300 movs r3, #0 - 80062ac: 747b strb r3, [r7, #17] - - /* Check for RTC Parameters used to output RTCCLK */ - assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); - - /* Enable Power Clock */ - if(__HAL_RCC_PWR_IS_CLK_DISABLED() != 0U) - 80062ae: 4b46 ldr r3, [pc, #280] @ (80063c8 ) - 80062b0: 6d9b ldr r3, [r3, #88] @ 0x58 - 80062b2: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 80062b6: 2b00 cmp r3, #0 - 80062b8: d101 bne.n 80062be - 80062ba: 2301 movs r3, #1 - 80062bc: e000 b.n 80062c0 - 80062be: 2300 movs r3, #0 - 80062c0: 2b00 cmp r3, #0 - 80062c2: d00d beq.n 80062e0 - { - __HAL_RCC_PWR_CLK_ENABLE(); - 80062c4: 4b40 ldr r3, [pc, #256] @ (80063c8 ) - 80062c6: 6d9b ldr r3, [r3, #88] @ 0x58 - 80062c8: 4a3f ldr r2, [pc, #252] @ (80063c8 ) - 80062ca: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 - 80062ce: 6593 str r3, [r2, #88] @ 0x58 - 80062d0: 4b3d ldr r3, [pc, #244] @ (80063c8 ) - 80062d2: 6d9b ldr r3, [r3, #88] @ 0x58 - 80062d4: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 80062d8: 60bb str r3, [r7, #8] - 80062da: 68bb ldr r3, [r7, #8] - pwrclkchanged = SET; - 80062dc: 2301 movs r3, #1 - 80062de: 747b strb r3, [r7, #17] - } - - /* Enable write access to Backup domain */ - SET_BIT(PWR->CR1, PWR_CR1_DBP); - 80062e0: 4b3a ldr r3, [pc, #232] @ (80063cc ) - 80062e2: 681b ldr r3, [r3, #0] - 80062e4: 4a39 ldr r2, [pc, #228] @ (80063cc ) - 80062e6: f443 7380 orr.w r3, r3, #256 @ 0x100 - 80062ea: 6013 str r3, [r2, #0] - - /* Wait for Backup domain Write protection disable */ - tickstart = HAL_GetTick(); - 80062ec: f7fd ff16 bl 800411c - 80062f0: 60f8 str r0, [r7, #12] - - while(READ_BIT(PWR->CR1, PWR_CR1_DBP) == 0U) - 80062f2: e009 b.n 8006308 - { - if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 80062f4: f7fd ff12 bl 800411c - 80062f8: 4602 mov r2, r0 - 80062fa: 68fb ldr r3, [r7, #12] - 80062fc: 1ad3 subs r3, r2, r3 - 80062fe: 2b02 cmp r3, #2 - 8006300: d902 bls.n 8006308 - { - ret = HAL_TIMEOUT; - 8006302: 2303 movs r3, #3 - 8006304: 74fb strb r3, [r7, #19] - break; - 8006306: e005 b.n 8006314 - while(READ_BIT(PWR->CR1, PWR_CR1_DBP) == 0U) - 8006308: 4b30 ldr r3, [pc, #192] @ (80063cc ) - 800630a: 681b ldr r3, [r3, #0] - 800630c: f403 7380 and.w r3, r3, #256 @ 0x100 - 8006310: 2b00 cmp r3, #0 - 8006312: d0ef beq.n 80062f4 - } - } - - if(ret == HAL_OK) - 8006314: 7cfb ldrb r3, [r7, #19] - 8006316: 2b00 cmp r3, #0 - 8006318: d15a bne.n 80063d0 - { - /* Reset the Backup domain only if the RTC Clock source selection is modified from default */ - tmpregister = READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL); - 800631a: 4b2b ldr r3, [pc, #172] @ (80063c8 ) - 800631c: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8006320: f403 7340 and.w r3, r3, #768 @ 0x300 - 8006324: 617b str r3, [r7, #20] - - if((tmpregister != RCC_RTCCLKSOURCE_NONE) && (tmpregister != PeriphClkInit->RTCClockSelection)) - 8006326: 697b ldr r3, [r7, #20] - 8006328: 2b00 cmp r3, #0 - 800632a: d01e beq.n 800636a - 800632c: 687b ldr r3, [r7, #4] - 800632e: 6e5b ldr r3, [r3, #100] @ 0x64 - 8006330: 697a ldr r2, [r7, #20] - 8006332: 429a cmp r2, r3 - 8006334: d019 beq.n 800636a - { - /* Store the content of BDCR register before the reset of Backup Domain */ - tmpregister = READ_BIT(RCC->BDCR, ~(RCC_BDCR_RTCSEL)); - 8006336: 4b24 ldr r3, [pc, #144] @ (80063c8 ) - 8006338: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 800633c: f423 7340 bic.w r3, r3, #768 @ 0x300 - 8006340: 617b str r3, [r7, #20] - /* RTC Clock selection can be changed only if the Backup Domain is reset */ - __HAL_RCC_BACKUPRESET_FORCE(); - 8006342: 4b21 ldr r3, [pc, #132] @ (80063c8 ) - 8006344: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8006348: 4a1f ldr r2, [pc, #124] @ (80063c8 ) - 800634a: f443 3380 orr.w r3, r3, #65536 @ 0x10000 - 800634e: f8c2 3090 str.w r3, [r2, #144] @ 0x90 - __HAL_RCC_BACKUPRESET_RELEASE(); - 8006352: 4b1d ldr r3, [pc, #116] @ (80063c8 ) - 8006354: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 8006358: 4a1b ldr r2, [pc, #108] @ (80063c8 ) - 800635a: f423 3380 bic.w r3, r3, #65536 @ 0x10000 - 800635e: f8c2 3090 str.w r3, [r2, #144] @ 0x90 - /* Restore the Content of BDCR register */ - RCC->BDCR = tmpregister; - 8006362: 4a19 ldr r2, [pc, #100] @ (80063c8 ) - 8006364: 697b ldr r3, [r7, #20] - 8006366: f8c2 3090 str.w r3, [r2, #144] @ 0x90 - } - - /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ - if (HAL_IS_BIT_SET(tmpregister, RCC_BDCR_LSEON)) - 800636a: 697b ldr r3, [r7, #20] - 800636c: f003 0301 and.w r3, r3, #1 - 8006370: 2b00 cmp r3, #0 - 8006372: d016 beq.n 80063a2 - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8006374: f7fd fed2 bl 800411c - 8006378: 60f8 str r0, [r7, #12] - - /* Wait till LSE is ready */ - while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) - 800637a: e00b b.n 8006394 - { - if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 800637c: f7fd fece bl 800411c - 8006380: 4602 mov r2, r0 - 8006382: 68fb ldr r3, [r7, #12] - 8006384: 1ad3 subs r3, r2, r3 - 8006386: f241 3288 movw r2, #5000 @ 0x1388 - 800638a: 4293 cmp r3, r2 - 800638c: d902 bls.n 8006394 - { - ret = HAL_TIMEOUT; - 800638e: 2303 movs r3, #3 - 8006390: 74fb strb r3, [r7, #19] - break; - 8006392: e006 b.n 80063a2 - while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) - 8006394: 4b0c ldr r3, [pc, #48] @ (80063c8 ) - 8006396: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 800639a: f003 0302 and.w r3, r3, #2 - 800639e: 2b00 cmp r3, #0 - 80063a0: d0ec beq.n 800637c - } - } - } - - if(ret == HAL_OK) - 80063a2: 7cfb ldrb r3, [r7, #19] - 80063a4: 2b00 cmp r3, #0 - 80063a6: d10b bne.n 80063c0 - { - /* Apply new RTC clock source selection */ - __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); - 80063a8: 4b07 ldr r3, [pc, #28] @ (80063c8 ) - 80063aa: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 - 80063ae: f423 7240 bic.w r2, r3, #768 @ 0x300 - 80063b2: 687b ldr r3, [r7, #4] - 80063b4: 6e5b ldr r3, [r3, #100] @ 0x64 - 80063b6: 4904 ldr r1, [pc, #16] @ (80063c8 ) - 80063b8: 4313 orrs r3, r2 - 80063ba: f8c1 3090 str.w r3, [r1, #144] @ 0x90 - 80063be: e009 b.n 80063d4 - } - else - { - /* set overall return value */ - status = ret; - 80063c0: 7cfb ldrb r3, [r7, #19] - 80063c2: 74bb strb r3, [r7, #18] - 80063c4: e006 b.n 80063d4 - 80063c6: bf00 nop - 80063c8: 40021000 .word 0x40021000 - 80063cc: 40007000 .word 0x40007000 - } - } - else - { - /* set overall return value */ - status = ret; - 80063d0: 7cfb ldrb r3, [r7, #19] - 80063d2: 74bb strb r3, [r7, #18] - } - - /* Restore clock configuration if changed */ - if(pwrclkchanged == SET) - 80063d4: 7c7b ldrb r3, [r7, #17] - 80063d6: 2b01 cmp r3, #1 - 80063d8: d105 bne.n 80063e6 - { - __HAL_RCC_PWR_CLK_DISABLE(); - 80063da: 4b9e ldr r3, [pc, #632] @ (8006654 ) - 80063dc: 6d9b ldr r3, [r3, #88] @ 0x58 - 80063de: 4a9d ldr r2, [pc, #628] @ (8006654 ) - 80063e0: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 - 80063e4: 6593 str r3, [r2, #88] @ 0x58 - } - } - - /*-------------------------- USART1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) - 80063e6: 687b ldr r3, [r7, #4] - 80063e8: 681b ldr r3, [r3, #0] - 80063ea: f003 0301 and.w r3, r3, #1 - 80063ee: 2b00 cmp r3, #0 - 80063f0: d00a beq.n 8006408 - { - /* Check the parameters */ - assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); - - /* Configure the USART1 clock source */ - __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); - 80063f2: 4b98 ldr r3, [pc, #608] @ (8006654 ) - 80063f4: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 80063f8: f023 0203 bic.w r2, r3, #3 - 80063fc: 687b ldr r3, [r7, #4] - 80063fe: 6a1b ldr r3, [r3, #32] - 8006400: 4994 ldr r1, [pc, #592] @ (8006654 ) - 8006402: 4313 orrs r3, r2 - 8006404: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - - /*-------------------------- USART2 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) - 8006408: 687b ldr r3, [r7, #4] - 800640a: 681b ldr r3, [r3, #0] - 800640c: f003 0302 and.w r3, r3, #2 - 8006410: 2b00 cmp r3, #0 - 8006412: d00a beq.n 800642a - { - /* Check the parameters */ - assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); - - /* Configure the USART2 clock source */ - __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); - 8006414: 4b8f ldr r3, [pc, #572] @ (8006654 ) - 8006416: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 800641a: f023 020c bic.w r2, r3, #12 - 800641e: 687b ldr r3, [r7, #4] - 8006420: 6a5b ldr r3, [r3, #36] @ 0x24 - 8006422: 498c ldr r1, [pc, #560] @ (8006654 ) - 8006424: 4313 orrs r3, r2 - 8006426: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - -#if defined(USART3) - - /*-------------------------- USART3 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) - 800642a: 687b ldr r3, [r7, #4] - 800642c: 681b ldr r3, [r3, #0] - 800642e: f003 0304 and.w r3, r3, #4 - 8006432: 2b00 cmp r3, #0 - 8006434: d00a beq.n 800644c - { - /* Check the parameters */ - assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); - - /* Configure the USART3 clock source */ - __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); - 8006436: 4b87 ldr r3, [pc, #540] @ (8006654 ) - 8006438: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 800643c: f023 0230 bic.w r2, r3, #48 @ 0x30 - 8006440: 687b ldr r3, [r7, #4] - 8006442: 6a9b ldr r3, [r3, #40] @ 0x28 - 8006444: 4983 ldr r1, [pc, #524] @ (8006654 ) - 8006446: 4313 orrs r3, r2 - 8006448: f8c1 3088 str.w r3, [r1, #136] @ 0x88 -#endif /* USART3 */ - -#if defined(UART4) - - /*-------------------------- UART4 clock source configuration --------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) - 800644c: 687b ldr r3, [r7, #4] - 800644e: 681b ldr r3, [r3, #0] - 8006450: f003 0308 and.w r3, r3, #8 - 8006454: 2b00 cmp r3, #0 - 8006456: d00a beq.n 800646e - { - /* Check the parameters */ - assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); - - /* Configure the UART4 clock source */ - __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); - 8006458: 4b7e ldr r3, [pc, #504] @ (8006654 ) - 800645a: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 800645e: f023 02c0 bic.w r2, r3, #192 @ 0xc0 - 8006462: 687b ldr r3, [r7, #4] - 8006464: 6adb ldr r3, [r3, #44] @ 0x2c - 8006466: 497b ldr r1, [pc, #492] @ (8006654 ) - 8006468: 4313 orrs r3, r2 - 800646a: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - -#endif /* UART5 */ - - /*-------------------------- LPUART1 clock source configuration ------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) - 800646e: 687b ldr r3, [r7, #4] - 8006470: 681b ldr r3, [r3, #0] - 8006472: f003 0320 and.w r3, r3, #32 - 8006476: 2b00 cmp r3, #0 - 8006478: d00a beq.n 8006490 - { - /* Check the parameters */ - assert_param(IS_RCC_LPUART1CLKSOURCE(PeriphClkInit->Lpuart1ClockSelection)); - - /* Configure the LPUART1 clock source */ - __HAL_RCC_LPUART1_CONFIG(PeriphClkInit->Lpuart1ClockSelection); - 800647a: 4b76 ldr r3, [pc, #472] @ (8006654 ) - 800647c: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8006480: f423 6240 bic.w r2, r3, #3072 @ 0xc00 - 8006484: 687b ldr r3, [r7, #4] - 8006486: 6b1b ldr r3, [r3, #48] @ 0x30 - 8006488: 4972 ldr r1, [pc, #456] @ (8006654 ) - 800648a: 4313 orrs r3, r2 - 800648c: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - - /*-------------------------- LPTIM1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == (RCC_PERIPHCLK_LPTIM1)) - 8006490: 687b ldr r3, [r7, #4] - 8006492: 681b ldr r3, [r3, #0] - 8006494: f403 7300 and.w r3, r3, #512 @ 0x200 - 8006498: 2b00 cmp r3, #0 - 800649a: d00a beq.n 80064b2 - { - assert_param(IS_RCC_LPTIM1CLK(PeriphClkInit->Lptim1ClockSelection)); - __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); - 800649c: 4b6d ldr r3, [pc, #436] @ (8006654 ) - 800649e: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 80064a2: f423 2240 bic.w r2, r3, #786432 @ 0xc0000 - 80064a6: 687b ldr r3, [r7, #4] - 80064a8: 6c5b ldr r3, [r3, #68] @ 0x44 - 80064aa: 496a ldr r1, [pc, #424] @ (8006654 ) - 80064ac: 4313 orrs r3, r2 - 80064ae: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - - /*-------------------------- LPTIM2 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM2) == (RCC_PERIPHCLK_LPTIM2)) - 80064b2: 687b ldr r3, [r7, #4] - 80064b4: 681b ldr r3, [r3, #0] - 80064b6: f403 6380 and.w r3, r3, #1024 @ 0x400 - 80064ba: 2b00 cmp r3, #0 - 80064bc: d00a beq.n 80064d4 - { - assert_param(IS_RCC_LPTIM2CLK(PeriphClkInit->Lptim2ClockSelection)); - __HAL_RCC_LPTIM2_CONFIG(PeriphClkInit->Lptim2ClockSelection); - 80064be: 4b65 ldr r3, [pc, #404] @ (8006654 ) - 80064c0: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 80064c4: f423 1240 bic.w r2, r3, #3145728 @ 0x300000 - 80064c8: 687b ldr r3, [r7, #4] - 80064ca: 6c9b ldr r3, [r3, #72] @ 0x48 - 80064cc: 4961 ldr r1, [pc, #388] @ (8006654 ) - 80064ce: 4313 orrs r3, r2 - 80064d0: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - - /*-------------------------- I2C1 clock source configuration ---------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) - 80064d4: 687b ldr r3, [r7, #4] - 80064d6: 681b ldr r3, [r3, #0] - 80064d8: f003 0340 and.w r3, r3, #64 @ 0x40 - 80064dc: 2b00 cmp r3, #0 - 80064de: d00a beq.n 80064f6 - { - /* Check the parameters */ - assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); - - /* Configure the I2C1 clock source */ - __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); - 80064e0: 4b5c ldr r3, [pc, #368] @ (8006654 ) - 80064e2: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 80064e6: f423 5240 bic.w r2, r3, #12288 @ 0x3000 - 80064ea: 687b ldr r3, [r7, #4] - 80064ec: 6b5b ldr r3, [r3, #52] @ 0x34 - 80064ee: 4959 ldr r1, [pc, #356] @ (8006654 ) - 80064f0: 4313 orrs r3, r2 - 80064f2: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - -#if defined(I2C2) - - /*-------------------------- I2C2 clock source configuration ---------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) - 80064f6: 687b ldr r3, [r7, #4] - 80064f8: 681b ldr r3, [r3, #0] - 80064fa: f003 0380 and.w r3, r3, #128 @ 0x80 - 80064fe: 2b00 cmp r3, #0 - 8006500: d00a beq.n 8006518 - { - /* Check the parameters */ - assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); - - /* Configure the I2C2 clock source */ - __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); - 8006502: 4b54 ldr r3, [pc, #336] @ (8006654 ) - 8006504: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8006508: f423 4240 bic.w r2, r3, #49152 @ 0xc000 - 800650c: 687b ldr r3, [r7, #4] - 800650e: 6b9b ldr r3, [r3, #56] @ 0x38 - 8006510: 4950 ldr r1, [pc, #320] @ (8006654 ) - 8006512: 4313 orrs r3, r2 - 8006514: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - -#endif /* I2C2 */ - - /*-------------------------- I2C3 clock source configuration ---------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) - 8006518: 687b ldr r3, [r7, #4] - 800651a: 681b ldr r3, [r3, #0] - 800651c: f403 7380 and.w r3, r3, #256 @ 0x100 - 8006520: 2b00 cmp r3, #0 - 8006522: d00a beq.n 800653a - { - /* Check the parameters */ - assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); - - /* Configure the I2C3 clock source */ - __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); - 8006524: 4b4b ldr r3, [pc, #300] @ (8006654 ) - 8006526: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 800652a: f423 3240 bic.w r2, r3, #196608 @ 0x30000 - 800652e: 687b ldr r3, [r7, #4] - 8006530: 6bdb ldr r3, [r3, #60] @ 0x3c - 8006532: 4948 ldr r1, [pc, #288] @ (8006654 ) - 8006534: 4313 orrs r3, r2 - 8006536: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - -#if defined(I2C4) - - /*-------------------------- I2C4 clock source configuration ---------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) - 800653a: 687b ldr r3, [r7, #4] - 800653c: 681b ldr r3, [r3, #0] - 800653e: f403 1380 and.w r3, r3, #1048576 @ 0x100000 - 8006542: 2b00 cmp r3, #0 - 8006544: d00a beq.n 800655c - { - /* Check the parameters */ - assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection)); - - /* Configure the I2C4 clock source */ - __HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection); - 8006546: 4b43 ldr r3, [pc, #268] @ (8006654 ) - 8006548: f8d3 309c ldr.w r3, [r3, #156] @ 0x9c - 800654c: f023 0203 bic.w r2, r3, #3 - 8006550: 687b ldr r3, [r7, #4] - 8006552: 6c1b ldr r3, [r3, #64] @ 0x40 - 8006554: 493f ldr r1, [pc, #252] @ (8006654 ) - 8006556: 4313 orrs r3, r2 - 8006558: f8c1 309c str.w r3, [r1, #156] @ 0x9c -#endif /* I2C4 */ - -#if defined(USB_OTG_FS) || defined(USB) - - /*-------------------------- USB clock source configuration ----------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USB) == (RCC_PERIPHCLK_USB)) - 800655c: 687b ldr r3, [r7, #4] - 800655e: 681b ldr r3, [r3, #0] - 8006560: f403 5300 and.w r3, r3, #8192 @ 0x2000 - 8006564: 2b00 cmp r3, #0 - 8006566: d028 beq.n 80065ba - { - assert_param(IS_RCC_USBCLKSOURCE(PeriphClkInit->UsbClockSelection)); - __HAL_RCC_USB_CONFIG(PeriphClkInit->UsbClockSelection); - 8006568: 4b3a ldr r3, [pc, #232] @ (8006654 ) - 800656a: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 800656e: f023 6240 bic.w r2, r3, #201326592 @ 0xc000000 - 8006572: 687b ldr r3, [r7, #4] - 8006574: 6d1b ldr r3, [r3, #80] @ 0x50 - 8006576: 4937 ldr r1, [pc, #220] @ (8006654 ) - 8006578: 4313 orrs r3, r2 - 800657a: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - - if(PeriphClkInit->UsbClockSelection == RCC_USBCLKSOURCE_PLL) - 800657e: 687b ldr r3, [r7, #4] - 8006580: 6d1b ldr r3, [r3, #80] @ 0x50 - 8006582: f1b3 6f00 cmp.w r3, #134217728 @ 0x8000000 - 8006586: d106 bne.n 8006596 - { - /* Enable PLL48M1CLK output clock */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); - 8006588: 4b32 ldr r3, [pc, #200] @ (8006654 ) - 800658a: 68db ldr r3, [r3, #12] - 800658c: 4a31 ldr r2, [pc, #196] @ (8006654 ) - 800658e: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 - 8006592: 60d3 str r3, [r2, #12] - 8006594: e011 b.n 80065ba - } - else - { -#if defined(RCC_PLLSAI1_SUPPORT) - if(PeriphClkInit->UsbClockSelection == RCC_USBCLKSOURCE_PLLSAI1) - 8006596: 687b ldr r3, [r7, #4] - 8006598: 6d1b ldr r3, [r3, #80] @ 0x50 - 800659a: f1b3 6f80 cmp.w r3, #67108864 @ 0x4000000 - 800659e: d10c bne.n 80065ba - { - /* PLLSAI1 input clock, parameters M, N & Q configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_Q_UPDATE); - 80065a0: 687b ldr r3, [r7, #4] - 80065a2: 3304 adds r3, #4 - 80065a4: 2101 movs r1, #1 - 80065a6: 4618 mov r0, r3 - 80065a8: f000 f8a4 bl 80066f4 - 80065ac: 4603 mov r3, r0 - 80065ae: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 80065b0: 7cfb ldrb r3, [r7, #19] - 80065b2: 2b00 cmp r3, #0 - 80065b4: d001 beq.n 80065ba - { - /* set overall return value */ - status = ret; - 80065b6: 7cfb ldrb r3, [r7, #19] - 80065b8: 74bb strb r3, [r7, #18] -#endif /* USB_OTG_FS || USB */ - -#if defined(SDMMC1) - - /*-------------------------- SDMMC1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == (RCC_PERIPHCLK_SDMMC1)) - 80065ba: 687b ldr r3, [r7, #4] - 80065bc: 681b ldr r3, [r3, #0] - 80065be: f403 2300 and.w r3, r3, #524288 @ 0x80000 - 80065c2: 2b00 cmp r3, #0 - 80065c4: d028 beq.n 8006618 - { - assert_param(IS_RCC_SDMMC1CLKSOURCE(PeriphClkInit->Sdmmc1ClockSelection)); - __HAL_RCC_SDMMC1_CONFIG(PeriphClkInit->Sdmmc1ClockSelection); - 80065c6: 4b23 ldr r3, [pc, #140] @ (8006654 ) - 80065c8: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 80065cc: f023 6240 bic.w r2, r3, #201326592 @ 0xc000000 - 80065d0: 687b ldr r3, [r7, #4] - 80065d2: 6d5b ldr r3, [r3, #84] @ 0x54 - 80065d4: 491f ldr r1, [pc, #124] @ (8006654 ) - 80065d6: 4313 orrs r3, r2 - 80065d8: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - - if(PeriphClkInit->Sdmmc1ClockSelection == RCC_SDMMC1CLKSOURCE_PLL) /* PLL "Q" ? */ - 80065dc: 687b ldr r3, [r7, #4] - 80065de: 6d5b ldr r3, [r3, #84] @ 0x54 - 80065e0: f1b3 6f00 cmp.w r3, #134217728 @ 0x8000000 - 80065e4: d106 bne.n 80065f4 - { - /* Enable PLL48M1CLK output clock */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); - 80065e6: 4b1b ldr r3, [pc, #108] @ (8006654 ) - 80065e8: 68db ldr r3, [r3, #12] - 80065ea: 4a1a ldr r2, [pc, #104] @ (8006654 ) - 80065ec: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 - 80065f0: 60d3 str r3, [r2, #12] - 80065f2: e011 b.n 8006618 - { - /* Enable PLLSAI3CLK output */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SAI3CLK); - } -#endif - else if(PeriphClkInit->Sdmmc1ClockSelection == RCC_SDMMC1CLKSOURCE_PLLSAI1) - 80065f4: 687b ldr r3, [r7, #4] - 80065f6: 6d5b ldr r3, [r3, #84] @ 0x54 - 80065f8: f1b3 6f80 cmp.w r3, #67108864 @ 0x4000000 - 80065fc: d10c bne.n 8006618 - { - /* PLLSAI1 input clock, parameters M, N & Q configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_Q_UPDATE); - 80065fe: 687b ldr r3, [r7, #4] - 8006600: 3304 adds r3, #4 - 8006602: 2101 movs r1, #1 - 8006604: 4618 mov r0, r3 - 8006606: f000 f875 bl 80066f4 - 800660a: 4603 mov r3, r0 - 800660c: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 800660e: 7cfb ldrb r3, [r7, #19] - 8006610: 2b00 cmp r3, #0 - 8006612: d001 beq.n 8006618 - { - /* set overall return value */ - status = ret; - 8006614: 7cfb ldrb r3, [r7, #19] - 8006616: 74bb strb r3, [r7, #18] - } - -#endif /* SDMMC1 */ - - /*-------------------------- RNG clock source configuration ----------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RNG) == (RCC_PERIPHCLK_RNG)) - 8006618: 687b ldr r3, [r7, #4] - 800661a: 681b ldr r3, [r3, #0] - 800661c: f403 2380 and.w r3, r3, #262144 @ 0x40000 - 8006620: 2b00 cmp r3, #0 - 8006622: d02b beq.n 800667c - { - assert_param(IS_RCC_RNGCLKSOURCE(PeriphClkInit->RngClockSelection)); - __HAL_RCC_RNG_CONFIG(PeriphClkInit->RngClockSelection); - 8006624: 4b0b ldr r3, [pc, #44] @ (8006654 ) - 8006626: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 800662a: f023 6240 bic.w r2, r3, #201326592 @ 0xc000000 - 800662e: 687b ldr r3, [r7, #4] - 8006630: 6d9b ldr r3, [r3, #88] @ 0x58 - 8006632: 4908 ldr r1, [pc, #32] @ (8006654 ) - 8006634: 4313 orrs r3, r2 - 8006636: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - - if(PeriphClkInit->RngClockSelection == RCC_RNGCLKSOURCE_PLL) - 800663a: 687b ldr r3, [r7, #4] - 800663c: 6d9b ldr r3, [r3, #88] @ 0x58 - 800663e: f1b3 6f00 cmp.w r3, #134217728 @ 0x8000000 - 8006642: d109 bne.n 8006658 - { - /* Enable PLL48M1CLK output clock */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); - 8006644: 4b03 ldr r3, [pc, #12] @ (8006654 ) - 8006646: 68db ldr r3, [r3, #12] - 8006648: 4a02 ldr r2, [pc, #8] @ (8006654 ) - 800664a: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 - 800664e: 60d3 str r3, [r2, #12] - 8006650: e014 b.n 800667c - 8006652: bf00 nop - 8006654: 40021000 .word 0x40021000 - } -#if defined(RCC_PLLSAI1_SUPPORT) - else if(PeriphClkInit->RngClockSelection == RCC_RNGCLKSOURCE_PLLSAI1) - 8006658: 687b ldr r3, [r7, #4] - 800665a: 6d9b ldr r3, [r3, #88] @ 0x58 - 800665c: f1b3 6f80 cmp.w r3, #67108864 @ 0x4000000 - 8006660: d10c bne.n 800667c - { - /* PLLSAI1 input clock, parameters M, N & Q configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_Q_UPDATE); - 8006662: 687b ldr r3, [r7, #4] - 8006664: 3304 adds r3, #4 - 8006666: 2101 movs r1, #1 - 8006668: 4618 mov r0, r3 - 800666a: f000 f843 bl 80066f4 - 800666e: 4603 mov r3, r0 - 8006670: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 8006672: 7cfb ldrb r3, [r7, #19] - 8006674: 2b00 cmp r3, #0 - 8006676: d001 beq.n 800667c - { - /* set overall return value */ - status = ret; - 8006678: 7cfb ldrb r3, [r7, #19] - 800667a: 74bb strb r3, [r7, #18] - } - } - - /*-------------------------- ADC clock source configuration ----------------------*/ -#if !defined(STM32L412xx) && !defined(STM32L422xx) - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC) - 800667c: 687b ldr r3, [r7, #4] - 800667e: 681b ldr r3, [r3, #0] - 8006680: f403 4380 and.w r3, r3, #16384 @ 0x4000 - 8006684: 2b00 cmp r3, #0 - 8006686: d01c beq.n 80066c2 - { - /* Check the parameters */ - assert_param(IS_RCC_ADCCLKSOURCE(PeriphClkInit->AdcClockSelection)); - - /* Configure the ADC interface clock source */ - __HAL_RCC_ADC_CONFIG(PeriphClkInit->AdcClockSelection); - 8006688: 4b19 ldr r3, [pc, #100] @ (80066f0 ) - 800668a: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 800668e: f023 5240 bic.w r2, r3, #805306368 @ 0x30000000 - 8006692: 687b ldr r3, [r7, #4] - 8006694: 6ddb ldr r3, [r3, #92] @ 0x5c - 8006696: 4916 ldr r1, [pc, #88] @ (80066f0 ) - 8006698: 4313 orrs r3, r2 - 800669a: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - -#if defined(RCC_PLLSAI1_SUPPORT) - if(PeriphClkInit->AdcClockSelection == RCC_ADCCLKSOURCE_PLLSAI1) - 800669e: 687b ldr r3, [r7, #4] - 80066a0: 6ddb ldr r3, [r3, #92] @ 0x5c - 80066a2: f1b3 5f80 cmp.w r3, #268435456 @ 0x10000000 - 80066a6: d10c bne.n 80066c2 - { - /* PLLSAI1 input clock, parameters M, N & R configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_R_UPDATE); - 80066a8: 687b ldr r3, [r7, #4] - 80066aa: 3304 adds r3, #4 - 80066ac: 2102 movs r1, #2 - 80066ae: 4618 mov r0, r3 - 80066b0: f000 f820 bl 80066f4 - 80066b4: 4603 mov r3, r0 - 80066b6: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 80066b8: 7cfb ldrb r3, [r7, #19] - 80066ba: 2b00 cmp r3, #0 - 80066bc: d001 beq.n 80066c2 - { - /* set overall return value */ - status = ret; - 80066be: 7cfb ldrb r3, [r7, #19] - 80066c0: 74bb strb r3, [r7, #18] -#endif /* SWPMI1 */ - -#if defined(DFSDM1_Filter0) - - /*-------------------------- DFSDM1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1) - 80066c2: 687b ldr r3, [r7, #4] - 80066c4: 681b ldr r3, [r3, #0] - 80066c6: f403 3380 and.w r3, r3, #65536 @ 0x10000 - 80066ca: 2b00 cmp r3, #0 - 80066cc: d00a beq.n 80066e4 - { - /* Check the parameters */ - assert_param(IS_RCC_DFSDM1CLKSOURCE(PeriphClkInit->Dfsdm1ClockSelection)); - - /* Configure the DFSDM1 interface clock source */ - __HAL_RCC_DFSDM1_CONFIG(PeriphClkInit->Dfsdm1ClockSelection); - 80066ce: 4b08 ldr r3, [pc, #32] @ (80066f0 ) - 80066d0: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 80066d4: f023 4200 bic.w r2, r3, #2147483648 @ 0x80000000 - 80066d8: 687b ldr r3, [r7, #4] - 80066da: 6e1b ldr r3, [r3, #96] @ 0x60 - 80066dc: 4904 ldr r1, [pc, #16] @ (80066f0 ) - 80066de: 4313 orrs r3, r2 - 80066e0: f8c1 3088 str.w r3, [r1, #136] @ 0x88 - } - } - -#endif /* OCTOSPI1 || OCTOSPI2 */ - - return status; - 80066e4: 7cbb ldrb r3, [r7, #18] -} - 80066e6: 4618 mov r0, r3 - 80066e8: 3718 adds r7, #24 - 80066ea: 46bd mov sp, r7 - 80066ec: bd80 pop {r7, pc} - 80066ee: bf00 nop - 80066f0: 40021000 .word 0x40021000 - -080066f4 : - * @note PLLSAI1 is temporary disable to apply new parameters - * - * @retval HAL status - */ -static HAL_StatusTypeDef RCCEx_PLLSAI1_Config(RCC_PLLSAI1InitTypeDef *PllSai1, uint32_t Divider) -{ - 80066f4: b580 push {r7, lr} - 80066f6: b084 sub sp, #16 - 80066f8: af00 add r7, sp, #0 - 80066fa: 6078 str r0, [r7, #4] - 80066fc: 6039 str r1, [r7, #0] - uint32_t tickstart; - HAL_StatusTypeDef status = HAL_OK; - 80066fe: 2300 movs r3, #0 - 8006700: 73fb strb r3, [r7, #15] - assert_param(IS_RCC_PLLSAI1M_VALUE(PllSai1->PLLSAI1M)); - assert_param(IS_RCC_PLLSAI1N_VALUE(PllSai1->PLLSAI1N)); - assert_param(IS_RCC_PLLSAI1CLOCKOUT_VALUE(PllSai1->PLLSAI1ClockOut)); - - /* Check that PLLSAI1 clock source and divider M can be applied */ - if(__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_NONE) - 8006702: 4b74 ldr r3, [pc, #464] @ (80068d4 ) - 8006704: 68db ldr r3, [r3, #12] - 8006706: f003 0303 and.w r3, r3, #3 - 800670a: 2b00 cmp r3, #0 - 800670c: d018 beq.n 8006740 - { - /* PLL clock source and divider M already set, check that no request for change */ - if((__HAL_RCC_GET_PLL_OSCSOURCE() != PllSai1->PLLSAI1Source) - 800670e: 4b71 ldr r3, [pc, #452] @ (80068d4 ) - 8006710: 68db ldr r3, [r3, #12] - 8006712: f003 0203 and.w r2, r3, #3 - 8006716: 687b ldr r3, [r7, #4] - 8006718: 681b ldr r3, [r3, #0] - 800671a: 429a cmp r2, r3 - 800671c: d10d bne.n 800673a - || - (PllSai1->PLLSAI1Source == RCC_PLLSOURCE_NONE) - 800671e: 687b ldr r3, [r7, #4] - 8006720: 681b ldr r3, [r3, #0] - || - 8006722: 2b00 cmp r3, #0 - 8006724: d009 beq.n 800673a -#if !defined(RCC_PLLSAI1M_DIV_1_16_SUPPORT) - || - (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U) != PllSai1->PLLSAI1M) - 8006726: 4b6b ldr r3, [pc, #428] @ (80068d4 ) - 8006728: 68db ldr r3, [r3, #12] - 800672a: 091b lsrs r3, r3, #4 - 800672c: f003 0307 and.w r3, r3, #7 - 8006730: 1c5a adds r2, r3, #1 - 8006732: 687b ldr r3, [r7, #4] - 8006734: 685b ldr r3, [r3, #4] - || - 8006736: 429a cmp r2, r3 - 8006738: d047 beq.n 80067ca -#endif - ) - { - status = HAL_ERROR; - 800673a: 2301 movs r3, #1 - 800673c: 73fb strb r3, [r7, #15] - 800673e: e044 b.n 80067ca - } - } - else - { - /* Check PLLSAI1 clock source availability */ - switch(PllSai1->PLLSAI1Source) - 8006740: 687b ldr r3, [r7, #4] - 8006742: 681b ldr r3, [r3, #0] - 8006744: 2b03 cmp r3, #3 - 8006746: d018 beq.n 800677a - 8006748: 2b03 cmp r3, #3 - 800674a: d825 bhi.n 8006798 - 800674c: 2b01 cmp r3, #1 - 800674e: d002 beq.n 8006756 - 8006750: 2b02 cmp r3, #2 - 8006752: d009 beq.n 8006768 - 8006754: e020 b.n 8006798 - { - case RCC_PLLSOURCE_MSI: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_MSIRDY)) - 8006756: 4b5f ldr r3, [pc, #380] @ (80068d4 ) - 8006758: 681b ldr r3, [r3, #0] - 800675a: f003 0302 and.w r3, r3, #2 - 800675e: 2b00 cmp r3, #0 - 8006760: d11d bne.n 800679e - { - status = HAL_ERROR; - 8006762: 2301 movs r3, #1 - 8006764: 73fb strb r3, [r7, #15] - } - break; - 8006766: e01a b.n 800679e - case RCC_PLLSOURCE_HSI: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSIRDY)) - 8006768: 4b5a ldr r3, [pc, #360] @ (80068d4 ) - 800676a: 681b ldr r3, [r3, #0] - 800676c: f403 6380 and.w r3, r3, #1024 @ 0x400 - 8006770: 2b00 cmp r3, #0 - 8006772: d116 bne.n 80067a2 - { - status = HAL_ERROR; - 8006774: 2301 movs r3, #1 - 8006776: 73fb strb r3, [r7, #15] - } - break; - 8006778: e013 b.n 80067a2 - case RCC_PLLSOURCE_HSE: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSERDY)) - 800677a: 4b56 ldr r3, [pc, #344] @ (80068d4 ) - 800677c: 681b ldr r3, [r3, #0] - 800677e: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8006782: 2b00 cmp r3, #0 - 8006784: d10f bne.n 80067a6 - { - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSEBYP)) - 8006786: 4b53 ldr r3, [pc, #332] @ (80068d4 ) - 8006788: 681b ldr r3, [r3, #0] - 800678a: f403 2380 and.w r3, r3, #262144 @ 0x40000 - 800678e: 2b00 cmp r3, #0 - 8006790: d109 bne.n 80067a6 - { - status = HAL_ERROR; - 8006792: 2301 movs r3, #1 - 8006794: 73fb strb r3, [r7, #15] - } - } - break; - 8006796: e006 b.n 80067a6 - default: - status = HAL_ERROR; - 8006798: 2301 movs r3, #1 - 800679a: 73fb strb r3, [r7, #15] - break; - 800679c: e004 b.n 80067a8 - break; - 800679e: bf00 nop - 80067a0: e002 b.n 80067a8 - break; - 80067a2: bf00 nop - 80067a4: e000 b.n 80067a8 - break; - 80067a6: bf00 nop - } - - if(status == HAL_OK) - 80067a8: 7bfb ldrb r3, [r7, #15] - 80067aa: 2b00 cmp r3, #0 - 80067ac: d10d bne.n 80067ca -#if defined(RCC_PLLSAI1M_DIV_1_16_SUPPORT) - /* Set PLLSAI1 clock source */ - MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, PllSai1->PLLSAI1Source); -#else - /* Set PLLSAI1 clock source and divider M */ - MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM, PllSai1->PLLSAI1Source | (PllSai1->PLLSAI1M - 1U) << RCC_PLLCFGR_PLLM_Pos); - 80067ae: 4b49 ldr r3, [pc, #292] @ (80068d4 ) - 80067b0: 68db ldr r3, [r3, #12] - 80067b2: f023 0273 bic.w r2, r3, #115 @ 0x73 - 80067b6: 687b ldr r3, [r7, #4] - 80067b8: 6819 ldr r1, [r3, #0] - 80067ba: 687b ldr r3, [r7, #4] - 80067bc: 685b ldr r3, [r3, #4] - 80067be: 3b01 subs r3, #1 - 80067c0: 011b lsls r3, r3, #4 - 80067c2: 430b orrs r3, r1 - 80067c4: 4943 ldr r1, [pc, #268] @ (80068d4 ) - 80067c6: 4313 orrs r3, r2 - 80067c8: 60cb str r3, [r1, #12] -#endif - } - } - - if(status == HAL_OK) - 80067ca: 7bfb ldrb r3, [r7, #15] - 80067cc: 2b00 cmp r3, #0 - 80067ce: d17c bne.n 80068ca - { - /* Disable the PLLSAI1 */ - __HAL_RCC_PLLSAI1_DISABLE(); - 80067d0: 4b40 ldr r3, [pc, #256] @ (80068d4 ) - 80067d2: 681b ldr r3, [r3, #0] - 80067d4: 4a3f ldr r2, [pc, #252] @ (80068d4 ) - 80067d6: f023 6380 bic.w r3, r3, #67108864 @ 0x4000000 - 80067da: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80067dc: f7fd fc9e bl 800411c - 80067e0: 60b8 str r0, [r7, #8] - - /* Wait till PLLSAI1 is ready to be updated */ - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI1RDY) != 0U) - 80067e2: e009 b.n 80067f8 - { - if((HAL_GetTick() - tickstart) > PLLSAI1_TIMEOUT_VALUE) - 80067e4: f7fd fc9a bl 800411c - 80067e8: 4602 mov r2, r0 - 80067ea: 68bb ldr r3, [r7, #8] - 80067ec: 1ad3 subs r3, r2, r3 - 80067ee: 2b02 cmp r3, #2 - 80067f0: d902 bls.n 80067f8 - { - status = HAL_TIMEOUT; - 80067f2: 2303 movs r3, #3 - 80067f4: 73fb strb r3, [r7, #15] - break; - 80067f6: e005 b.n 8006804 - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI1RDY) != 0U) - 80067f8: 4b36 ldr r3, [pc, #216] @ (80068d4 ) - 80067fa: 681b ldr r3, [r3, #0] - 80067fc: f003 6300 and.w r3, r3, #134217728 @ 0x8000000 - 8006800: 2b00 cmp r3, #0 - 8006802: d1ef bne.n 80067e4 - } - } - - if(status == HAL_OK) - 8006804: 7bfb ldrb r3, [r7, #15] - 8006806: 2b00 cmp r3, #0 - 8006808: d15f bne.n 80068ca - { - if(Divider == DIVIDER_P_UPDATE) - 800680a: 683b ldr r3, [r7, #0] - 800680c: 2b00 cmp r3, #0 - 800680e: d110 bne.n 8006832 -#endif /* RCC_PLLSAI1P_DIV_2_31_SUPPORT */ - -#else - /* Configure the PLLSAI1 Division factor P and Multiplication factor N*/ -#if defined(RCC_PLLSAI1P_DIV_2_31_SUPPORT) - MODIFY_REG(RCC->PLLSAI1CFGR, - 8006810: 4b30 ldr r3, [pc, #192] @ (80068d4 ) - 8006812: 691b ldr r3, [r3, #16] - 8006814: f023 4378 bic.w r3, r3, #4160749568 @ 0xf8000000 - 8006818: f423 43fe bic.w r3, r3, #32512 @ 0x7f00 - 800681c: 687a ldr r2, [r7, #4] - 800681e: 6892 ldr r2, [r2, #8] - 8006820: 0211 lsls r1, r2, #8 - 8006822: 687a ldr r2, [r7, #4] - 8006824: 68d2 ldr r2, [r2, #12] - 8006826: 06d2 lsls r2, r2, #27 - 8006828: 430a orrs r2, r1 - 800682a: 492a ldr r1, [pc, #168] @ (80068d4 ) - 800682c: 4313 orrs r3, r2 - 800682e: 610b str r3, [r1, #16] - 8006830: e027 b.n 8006882 - ((PllSai1->PLLSAI1P >> 4U) << RCC_PLLSAI1CFGR_PLLSAI1P_Pos)); -#endif /* RCC_PLLSAI1P_DIV_2_31_SUPPORT */ - -#endif /* RCC_PLLSAI1M_DIV_1_16_SUPPORT */ - } - else if(Divider == DIVIDER_Q_UPDATE) - 8006832: 683b ldr r3, [r7, #0] - 8006834: 2b01 cmp r3, #1 - 8006836: d112 bne.n 800685e - (PllSai1->PLLSAI1N << RCC_PLLSAI1CFGR_PLLSAI1N_Pos) | - (((PllSai1->PLLSAI1Q >> 1U) - 1U) << RCC_PLLSAI1CFGR_PLLSAI1Q_Pos) | - ((PllSai1->PLLSAI1M - 1U) << RCC_PLLSAI1CFGR_PLLSAI1M_Pos)); -#else - /* Configure the PLLSAI1 Division factor Q and Multiplication factor N*/ - MODIFY_REG(RCC->PLLSAI1CFGR, - 8006838: 4b26 ldr r3, [pc, #152] @ (80068d4 ) - 800683a: 691b ldr r3, [r3, #16] - 800683c: f423 03c0 bic.w r3, r3, #6291456 @ 0x600000 - 8006840: f423 43fe bic.w r3, r3, #32512 @ 0x7f00 - 8006844: 687a ldr r2, [r7, #4] - 8006846: 6892 ldr r2, [r2, #8] - 8006848: 0211 lsls r1, r2, #8 - 800684a: 687a ldr r2, [r7, #4] - 800684c: 6912 ldr r2, [r2, #16] - 800684e: 0852 lsrs r2, r2, #1 - 8006850: 3a01 subs r2, #1 - 8006852: 0552 lsls r2, r2, #21 - 8006854: 430a orrs r2, r1 - 8006856: 491f ldr r1, [pc, #124] @ (80068d4 ) - 8006858: 4313 orrs r3, r2 - 800685a: 610b str r3, [r1, #16] - 800685c: e011 b.n 8006882 - (PllSai1->PLLSAI1N << RCC_PLLSAI1CFGR_PLLSAI1N_Pos) | - (((PllSai1->PLLSAI1R >> 1U) - 1U) << RCC_PLLSAI1CFGR_PLLSAI1R_Pos) | - ((PllSai1->PLLSAI1M - 1U) << RCC_PLLSAI1CFGR_PLLSAI1M_Pos)); -#else - /* Configure the PLLSAI1 Division factor R and Multiplication factor N*/ - MODIFY_REG(RCC->PLLSAI1CFGR, - 800685e: 4b1d ldr r3, [pc, #116] @ (80068d4 ) - 8006860: 691b ldr r3, [r3, #16] - 8006862: f023 63c0 bic.w r3, r3, #100663296 @ 0x6000000 - 8006866: f423 43fe bic.w r3, r3, #32512 @ 0x7f00 - 800686a: 687a ldr r2, [r7, #4] - 800686c: 6892 ldr r2, [r2, #8] - 800686e: 0211 lsls r1, r2, #8 - 8006870: 687a ldr r2, [r7, #4] - 8006872: 6952 ldr r2, [r2, #20] - 8006874: 0852 lsrs r2, r2, #1 - 8006876: 3a01 subs r2, #1 - 8006878: 0652 lsls r2, r2, #25 - 800687a: 430a orrs r2, r1 - 800687c: 4915 ldr r1, [pc, #84] @ (80068d4 ) - 800687e: 4313 orrs r3, r2 - 8006880: 610b str r3, [r1, #16] - (((PllSai1->PLLSAI1R >> 1U) - 1U) << RCC_PLLSAI1CFGR_PLLSAI1R_Pos)); -#endif /* RCC_PLLSAI1M_DIV_1_16_SUPPORT */ - } - - /* Enable the PLLSAI1 again by setting PLLSAI1ON to 1*/ - __HAL_RCC_PLLSAI1_ENABLE(); - 8006882: 4b14 ldr r3, [pc, #80] @ (80068d4 ) - 8006884: 681b ldr r3, [r3, #0] - 8006886: 4a13 ldr r2, [pc, #76] @ (80068d4 ) - 8006888: f043 6380 orr.w r3, r3, #67108864 @ 0x4000000 - 800688c: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 800688e: f7fd fc45 bl 800411c - 8006892: 60b8 str r0, [r7, #8] - - /* Wait till PLLSAI1 is ready */ - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI1RDY) == 0U) - 8006894: e009 b.n 80068aa - { - if((HAL_GetTick() - tickstart) > PLLSAI1_TIMEOUT_VALUE) - 8006896: f7fd fc41 bl 800411c - 800689a: 4602 mov r2, r0 - 800689c: 68bb ldr r3, [r7, #8] - 800689e: 1ad3 subs r3, r2, r3 - 80068a0: 2b02 cmp r3, #2 - 80068a2: d902 bls.n 80068aa - { - status = HAL_TIMEOUT; - 80068a4: 2303 movs r3, #3 - 80068a6: 73fb strb r3, [r7, #15] - break; - 80068a8: e005 b.n 80068b6 - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI1RDY) == 0U) - 80068aa: 4b0a ldr r3, [pc, #40] @ (80068d4 ) - 80068ac: 681b ldr r3, [r3, #0] - 80068ae: f003 6300 and.w r3, r3, #134217728 @ 0x8000000 - 80068b2: 2b00 cmp r3, #0 - 80068b4: d0ef beq.n 8006896 - } - } - - if(status == HAL_OK) - 80068b6: 7bfb ldrb r3, [r7, #15] - 80068b8: 2b00 cmp r3, #0 - 80068ba: d106 bne.n 80068ca - { - /* Configure the PLLSAI1 Clock output(s) */ - __HAL_RCC_PLLSAI1CLKOUT_ENABLE(PllSai1->PLLSAI1ClockOut); - 80068bc: 4b05 ldr r3, [pc, #20] @ (80068d4 ) - 80068be: 691a ldr r2, [r3, #16] - 80068c0: 687b ldr r3, [r7, #4] - 80068c2: 699b ldr r3, [r3, #24] - 80068c4: 4903 ldr r1, [pc, #12] @ (80068d4 ) - 80068c6: 4313 orrs r3, r2 - 80068c8: 610b str r3, [r1, #16] - } - } - } - - return status; - 80068ca: 7bfb ldrb r3, [r7, #15] -} - 80068cc: 4618 mov r0, r3 - 80068ce: 3710 adds r7, #16 - 80068d0: 46bd mov sp, r7 - 80068d2: bd80 pop {r7, pc} - 80068d4: 40021000 .word 0x40021000 - -080068d8 : - * 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) -{ - 80068d8: b580 push {r7, lr} - 80068da: b082 sub sp, #8 - 80068dc: af00 add r7, sp, #0 - 80068de: 6078 str r0, [r7, #4] - /* Check the UART handle allocation */ - if (huart == NULL) - 80068e0: 687b ldr r3, [r7, #4] - 80068e2: 2b00 cmp r3, #0 - 80068e4: d101 bne.n 80068ea + 8002630: b580 push {r7, lr} + 8002632: b084 sub sp, #16 + 8002634: af00 add r7, sp, #0 + 8002636: 6078 str r0, [r7, #4] + uint32_t frxth; + + /* Check the SPI handle allocation */ + if (hspi == NULL) + 8002638: 687b ldr r3, [r7, #4] + 800263a: 2b00 cmp r3, #0 + 800263c: d101 bne.n 8002642 { return HAL_ERROR; - 80068e6: 2301 movs r3, #1 - 80068e8: e040 b.n 800696c + 800263e: 2301 movs r3, #1 + 8002640: e095 b.n 800276e + assert_param(IS_SPI_NSS(hspi->Init.NSS)); + assert_param(IS_SPI_NSSP(hspi->Init.NSSPMode)); + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); + assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); + if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) + 8002642: 687b ldr r3, [r7, #4] + 8002644: 6a5b ldr r3, [r3, #36] @ 0x24 + 8002646: 2b00 cmp r3, #0 + 8002648: d108 bne.n 800265c { - /* Check the parameters */ - assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); - } + assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity)); + assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); - if (huart->gState == HAL_UART_STATE_RESET) - 80068ea: 687b ldr r3, [r7, #4] - 80068ec: 6fdb ldr r3, [r3, #124] @ 0x7c - 80068ee: 2b00 cmp r3, #0 - 80068f0: d106 bne.n 8006900 + if (hspi->Init.Mode == SPI_MODE_MASTER) + 800264a: 687b ldr r3, [r7, #4] + 800264c: 685b ldr r3, [r3, #4] + 800264e: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8002652: d009 beq.n 8002668 + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + } + else + { + /* Baudrate prescaler not use in Motoraola Slave mode. force to default value */ + hspi->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + 8002654: 687b ldr r3, [r7, #4] + 8002656: 2200 movs r2, #0 + 8002658: 61da str r2, [r3, #28] + 800265a: e005 b.n 8002668 + else + { + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + + /* Force polarity and phase to TI protocaol requirements */ + hspi->Init.CLKPolarity = SPI_POLARITY_LOW; + 800265c: 687b ldr r3, [r7, #4] + 800265e: 2200 movs r2, #0 + 8002660: 611a str r2, [r3, #16] + hspi->Init.CLKPhase = SPI_PHASE_1EDGE; + 8002662: 687b ldr r3, [r7, #4] + 8002664: 2200 movs r2, #0 + 8002666: 615a str r2, [r3, #20] + { + assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); + assert_param(IS_SPI_CRC_LENGTH(hspi->Init.CRCLength)); + } +#else + hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + 8002668: 687b ldr r3, [r7, #4] + 800266a: 2200 movs r2, #0 + 800266c: 629a str r2, [r3, #40] @ 0x28 +#endif /* USE_SPI_CRC */ + + if (hspi->State == HAL_SPI_STATE_RESET) + 800266e: 687b ldr r3, [r7, #4] + 8002670: f893 305d ldrb.w r3, [r3, #93] @ 0x5d + 8002674: b2db uxtb r3, r3 + 8002676: 2b00 cmp r3, #0 + 8002678: d106 bne.n 8002688 { /* Allocate lock resource and initialize it */ - huart->Lock = HAL_UNLOCKED; - 80068f2: 687b ldr r3, [r7, #4] - 80068f4: 2200 movs r2, #0 - 80068f6: f883 2078 strb.w r2, [r3, #120] @ 0x78 + hspi->Lock = HAL_UNLOCKED; + 800267a: 687b ldr r3, [r7, #4] + 800267c: 2200 movs r2, #0 + 800267e: f883 205c strb.w r2, [r3, #92] @ 0x5c - /* Init the low level hardware */ - huart->MspInitCallback(huart); + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + hspi->MspInitCallback(hspi); #else - /* Init the low level hardware : GPIO, CLOCK */ - HAL_UART_MspInit(huart); - 80068fa: 6878 ldr r0, [r7, #4] - 80068fc: f7fd fa10 bl 8003d20 -#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + HAL_SPI_MspInit(hspi); + 8002682: 6878 ldr r0, [r7, #4] + 8002684: f7fe fd38 bl 80010f8 +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } - huart->gState = HAL_UART_STATE_BUSY; - 8006900: 687b ldr r3, [r7, #4] - 8006902: 2224 movs r2, #36 @ 0x24 - 8006904: 67da str r2, [r3, #124] @ 0x7c + hspi->State = HAL_SPI_STATE_BUSY; + 8002688: 687b ldr r3, [r7, #4] + 800268a: 2202 movs r2, #2 + 800268c: f883 205d strb.w r2, [r3, #93] @ 0x5d - __HAL_UART_DISABLE(huart); - 8006906: 687b ldr r3, [r7, #4] - 8006908: 681b ldr r3, [r3, #0] - 800690a: 681a ldr r2, [r3, #0] - 800690c: 687b ldr r3, [r7, #4] - 800690e: 681b ldr r3, [r3, #0] - 8006910: f022 0201 bic.w r2, r2, #1 - 8006914: 601a str r2, [r3, #0] + /* Disable the selected SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + 8002690: 687b ldr r3, [r7, #4] + 8002692: 681b ldr r3, [r3, #0] + 8002694: 681a ldr r2, [r3, #0] + 8002696: 687b ldr r3, [r7, #4] + 8002698: 681b ldr r3, [r3, #0] + 800269a: f022 0240 bic.w r2, r2, #64 @ 0x40 + 800269e: 601a str r2, [r3, #0] - /* Perform advanced settings configuration */ - /* For some items, configuration requires to be done prior TE and RE bits are set */ - if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) - 8006916: 687b ldr r3, [r7, #4] - 8006918: 6a5b ldr r3, [r3, #36] @ 0x24 - 800691a: 2b00 cmp r3, #0 - 800691c: d002 beq.n 8006924 + /* Align by default the rs fifo threshold on the data size */ + if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) + 80026a0: 687b ldr r3, [r7, #4] + 80026a2: 68db ldr r3, [r3, #12] + 80026a4: f5b3 6fe0 cmp.w r3, #1792 @ 0x700 + 80026a8: d902 bls.n 80026b0 { - UART_AdvFeatureConfig(huart); - 800691e: 6878 ldr r0, [r7, #4] - 8006920: f000 fb38 bl 8006f94 - } - - /* Set the UART Communication parameters */ - if (UART_SetConfig(huart) == HAL_ERROR) - 8006924: 6878 ldr r0, [r7, #4] - 8006926: f000 f8af bl 8006a88 - 800692a: 4603 mov r3, r0 - 800692c: 2b01 cmp r3, #1 - 800692e: d101 bne.n 8006934 - { - return HAL_ERROR; - 8006930: 2301 movs r3, #1 - 8006932: e01b b.n 800696c - } - - /* 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)); - 8006934: 687b ldr r3, [r7, #4] - 8006936: 681b ldr r3, [r3, #0] - 8006938: 685a ldr r2, [r3, #4] - 800693a: 687b ldr r3, [r7, #4] - 800693c: 681b ldr r3, [r3, #0] - 800693e: f422 4290 bic.w r2, r2, #18432 @ 0x4800 - 8006942: 605a str r2, [r3, #4] - CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); - 8006944: 687b ldr r3, [r7, #4] - 8006946: 681b ldr r3, [r3, #0] - 8006948: 689a ldr r2, [r3, #8] - 800694a: 687b ldr r3, [r7, #4] - 800694c: 681b ldr r3, [r3, #0] - 800694e: f022 022a bic.w r2, r2, #42 @ 0x2a - 8006952: 609a str r2, [r3, #8] - - __HAL_UART_ENABLE(huart); - 8006954: 687b ldr r3, [r7, #4] - 8006956: 681b ldr r3, [r3, #0] - 8006958: 681a ldr r2, [r3, #0] - 800695a: 687b ldr r3, [r7, #4] - 800695c: 681b ldr r3, [r3, #0] - 800695e: f042 0201 orr.w r2, r2, #1 - 8006962: 601a str r2, [r3, #0] - - /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ - return (UART_CheckIdleState(huart)); - 8006964: 6878 ldr r0, [r7, #4] - 8006966: f000 fbb7 bl 80070d8 - 800696a: 4603 mov r3, r0 -} - 800696c: 4618 mov r0, r3 - 800696e: 3708 adds r7, #8 - 8006970: 46bd mov sp, r7 - 8006972: bd80 pop {r7, pc} - -08006974 : - * @param Size Amount of data elements (u8 or u16) to be sent. - * @param Timeout Timeout duration. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout) -{ - 8006974: b580 push {r7, lr} - 8006976: b08a sub sp, #40 @ 0x28 - 8006978: af02 add r7, sp, #8 - 800697a: 60f8 str r0, [r7, #12] - 800697c: 60b9 str r1, [r7, #8] - 800697e: 603b str r3, [r7, #0] - 8006980: 4613 mov r3, r2 - 8006982: 80fb strh r3, [r7, #6] - const uint8_t *pdata8bits; - const uint16_t *pdata16bits; - uint32_t tickstart; - - /* Check that a Tx process is not already ongoing */ - if (huart->gState == HAL_UART_STATE_READY) - 8006984: 68fb ldr r3, [r7, #12] - 8006986: 6fdb ldr r3, [r3, #124] @ 0x7c - 8006988: 2b20 cmp r3, #32 - 800698a: d177 bne.n 8006a7c - { - if ((pData == NULL) || (Size == 0U)) - 800698c: 68bb ldr r3, [r7, #8] - 800698e: 2b00 cmp r3, #0 - 8006990: d002 beq.n 8006998 - 8006992: 88fb ldrh r3, [r7, #6] - 8006994: 2b00 cmp r3, #0 - 8006996: d101 bne.n 800699c - { - return HAL_ERROR; - 8006998: 2301 movs r3, #1 - 800699a: e070 b.n 8006a7e - } - - huart->ErrorCode = HAL_UART_ERROR_NONE; - 800699c: 68fb ldr r3, [r7, #12] - 800699e: 2200 movs r2, #0 - 80069a0: f8c3 2084 str.w r2, [r3, #132] @ 0x84 - huart->gState = HAL_UART_STATE_BUSY_TX; - 80069a4: 68fb ldr r3, [r7, #12] - 80069a6: 2221 movs r2, #33 @ 0x21 - 80069a8: 67da str r2, [r3, #124] @ 0x7c - - /* Init tickstart for timeout management */ - tickstart = HAL_GetTick(); - 80069aa: f7fd fbb7 bl 800411c - 80069ae: 6178 str r0, [r7, #20] - - huart->TxXferSize = Size; - 80069b0: 68fb ldr r3, [r7, #12] - 80069b2: 88fa ldrh r2, [r7, #6] - 80069b4: f8a3 2050 strh.w r2, [r3, #80] @ 0x50 - huart->TxXferCount = Size; - 80069b8: 68fb ldr r3, [r7, #12] - 80069ba: 88fa ldrh r2, [r7, #6] - 80069bc: 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)) - 80069c0: 68fb ldr r3, [r7, #12] - 80069c2: 689b ldr r3, [r3, #8] - 80069c4: f5b3 5f80 cmp.w r3, #4096 @ 0x1000 - 80069c8: d108 bne.n 80069dc - 80069ca: 68fb ldr r3, [r7, #12] - 80069cc: 691b ldr r3, [r3, #16] - 80069ce: 2b00 cmp r3, #0 - 80069d0: d104 bne.n 80069dc - { - pdata8bits = NULL; - 80069d2: 2300 movs r3, #0 - 80069d4: 61fb str r3, [r7, #28] - pdata16bits = (const uint16_t *) pData; - 80069d6: 68bb ldr r3, [r7, #8] - 80069d8: 61bb str r3, [r7, #24] - 80069da: e003 b.n 80069e4 - } - else - { - pdata8bits = pData; - 80069dc: 68bb ldr r3, [r7, #8] - 80069de: 61fb str r3, [r7, #28] - pdata16bits = NULL; - 80069e0: 2300 movs r3, #0 - 80069e2: 61bb str r3, [r7, #24] - } - - while (huart->TxXferCount > 0U) - 80069e4: e02f b.n 8006a46 - { - if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) - 80069e6: 683b ldr r3, [r7, #0] - 80069e8: 9300 str r3, [sp, #0] - 80069ea: 697b ldr r3, [r7, #20] - 80069ec: 2200 movs r2, #0 - 80069ee: 2180 movs r1, #128 @ 0x80 - 80069f0: 68f8 ldr r0, [r7, #12] - 80069f2: f000 fc19 bl 8007228 - 80069f6: 4603 mov r3, r0 - 80069f8: 2b00 cmp r3, #0 - 80069fa: d004 beq.n 8006a06 - { - - huart->gState = HAL_UART_STATE_READY; - 80069fc: 68fb ldr r3, [r7, #12] - 80069fe: 2220 movs r2, #32 - 8006a00: 67da str r2, [r3, #124] @ 0x7c - - return HAL_TIMEOUT; - 8006a02: 2303 movs r3, #3 - 8006a04: e03b b.n 8006a7e - } - if (pdata8bits == NULL) - 8006a06: 69fb ldr r3, [r7, #28] - 8006a08: 2b00 cmp r3, #0 - 8006a0a: d10b bne.n 8006a24 - { - huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); - 8006a0c: 69bb ldr r3, [r7, #24] - 8006a0e: 881a ldrh r2, [r3, #0] - 8006a10: 68fb ldr r3, [r7, #12] - 8006a12: 681b ldr r3, [r3, #0] - 8006a14: f3c2 0208 ubfx r2, r2, #0, #9 - 8006a18: b292 uxth r2, r2 - 8006a1a: 851a strh r2, [r3, #40] @ 0x28 - pdata16bits++; - 8006a1c: 69bb ldr r3, [r7, #24] - 8006a1e: 3302 adds r3, #2 - 8006a20: 61bb str r3, [r7, #24] - 8006a22: e007 b.n 8006a34 - } - else - { - huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); - 8006a24: 69fb ldr r3, [r7, #28] - 8006a26: 781a ldrb r2, [r3, #0] - 8006a28: 68fb ldr r3, [r7, #12] - 8006a2a: 681b ldr r3, [r3, #0] - 8006a2c: 851a strh r2, [r3, #40] @ 0x28 - pdata8bits++; - 8006a2e: 69fb ldr r3, [r7, #28] - 8006a30: 3301 adds r3, #1 - 8006a32: 61fb str r3, [r7, #28] - } - huart->TxXferCount--; - 8006a34: 68fb ldr r3, [r7, #12] - 8006a36: f8b3 3052 ldrh.w r3, [r3, #82] @ 0x52 - 8006a3a: b29b uxth r3, r3 - 8006a3c: 3b01 subs r3, #1 - 8006a3e: b29a uxth r2, r3 - 8006a40: 68fb ldr r3, [r7, #12] - 8006a42: f8a3 2052 strh.w r2, [r3, #82] @ 0x52 - while (huart->TxXferCount > 0U) - 8006a46: 68fb ldr r3, [r7, #12] - 8006a48: f8b3 3052 ldrh.w r3, [r3, #82] @ 0x52 - 8006a4c: b29b uxth r3, r3 - 8006a4e: 2b00 cmp r3, #0 - 8006a50: d1c9 bne.n 80069e6 - } - - if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) - 8006a52: 683b ldr r3, [r7, #0] - 8006a54: 9300 str r3, [sp, #0] - 8006a56: 697b ldr r3, [r7, #20] - 8006a58: 2200 movs r2, #0 - 8006a5a: 2140 movs r1, #64 @ 0x40 - 8006a5c: 68f8 ldr r0, [r7, #12] - 8006a5e: f000 fbe3 bl 8007228 - 8006a62: 4603 mov r3, r0 - 8006a64: 2b00 cmp r3, #0 - 8006a66: d004 beq.n 8006a72 - { - huart->gState = HAL_UART_STATE_READY; - 8006a68: 68fb ldr r3, [r7, #12] - 8006a6a: 2220 movs r2, #32 - 8006a6c: 67da str r2, [r3, #124] @ 0x7c - - return HAL_TIMEOUT; - 8006a6e: 2303 movs r3, #3 - 8006a70: e005 b.n 8006a7e - } - - /* At end of Tx process, restore huart->gState to Ready */ - huart->gState = HAL_UART_STATE_READY; - 8006a72: 68fb ldr r3, [r7, #12] - 8006a74: 2220 movs r2, #32 - 8006a76: 67da str r2, [r3, #124] @ 0x7c - - return HAL_OK; - 8006a78: 2300 movs r3, #0 - 8006a7a: e000 b.n 8006a7e + frxth = SPI_RXFIFO_THRESHOLD_HF; + 80026aa: 2300 movs r3, #0 + 80026ac: 60fb str r3, [r7, #12] + 80026ae: e002 b.n 80026b6 } else { - return HAL_BUSY; - 8006a7c: 2302 movs r3, #2 + frxth = SPI_RXFIFO_THRESHOLD_QF; + 80026b0: f44f 5380 mov.w r3, #4096 @ 0x1000 + 80026b4: 60fb str r3, [r7, #12] } -} - 8006a7e: 4618 mov r0, r3 - 8006a80: 3720 adds r7, #32 - 8006a82: 46bd mov sp, r7 - 8006a84: bd80 pop {r7, pc} - ... -08006a88 : - * @brief Configure the UART peripheral. - * @param huart UART handle. + /* CRC calculation is valid only for 16Bit and 8 Bit */ + if ((hspi->Init.DataSize != SPI_DATASIZE_16BIT) && (hspi->Init.DataSize != SPI_DATASIZE_8BIT)) + 80026b6: 687b ldr r3, [r7, #4] + 80026b8: 68db ldr r3, [r3, #12] + 80026ba: f5b3 6f70 cmp.w r3, #3840 @ 0xf00 + 80026be: d007 beq.n 80026d0 + 80026c0: 687b ldr r3, [r7, #4] + 80026c2: 68db ldr r3, [r3, #12] + 80026c4: f5b3 6fe0 cmp.w r3, #1792 @ 0x700 + 80026c8: d002 beq.n 80026d0 + { + /* CRC must be disabled */ + hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + 80026ca: 687b ldr r3, [r7, #4] + 80026cc: 2200 movs r2, #0 + 80026ce: 629a str r2, [r3, #40] @ 0x28 + } + + /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ + /* Configure : SPI Mode, Communication Mode, Clock polarity and phase, NSS management, + Communication speed, First bit and CRC calculation state */ + WRITE_REG(hspi->Instance->CR1, ((hspi->Init.Mode & (SPI_CR1_MSTR | SPI_CR1_SSI)) | + 80026d0: 687b ldr r3, [r7, #4] + 80026d2: 685b ldr r3, [r3, #4] + 80026d4: f403 7282 and.w r2, r3, #260 @ 0x104 + 80026d8: 687b ldr r3, [r7, #4] + 80026da: 689b ldr r3, [r3, #8] + 80026dc: f403 4304 and.w r3, r3, #33792 @ 0x8400 + 80026e0: 431a orrs r2, r3 + 80026e2: 687b ldr r3, [r7, #4] + 80026e4: 691b ldr r3, [r3, #16] + 80026e6: f003 0302 and.w r3, r3, #2 + 80026ea: 431a orrs r2, r3 + 80026ec: 687b ldr r3, [r7, #4] + 80026ee: 695b ldr r3, [r3, #20] + 80026f0: f003 0301 and.w r3, r3, #1 + 80026f4: 431a orrs r2, r3 + 80026f6: 687b ldr r3, [r7, #4] + 80026f8: 699b ldr r3, [r3, #24] + 80026fa: f403 7300 and.w r3, r3, #512 @ 0x200 + 80026fe: 431a orrs r2, r3 + 8002700: 687b ldr r3, [r7, #4] + 8002702: 69db ldr r3, [r3, #28] + 8002704: f003 0338 and.w r3, r3, #56 @ 0x38 + 8002708: 431a orrs r2, r3 + 800270a: 687b ldr r3, [r7, #4] + 800270c: 6a1b ldr r3, [r3, #32] + 800270e: f003 0380 and.w r3, r3, #128 @ 0x80 + 8002712: ea42 0103 orr.w r1, r2, r3 + 8002716: 687b ldr r3, [r7, #4] + 8002718: 6a9b ldr r3, [r3, #40] @ 0x28 + 800271a: f403 5200 and.w r2, r3, #8192 @ 0x2000 + 800271e: 687b ldr r3, [r7, #4] + 8002720: 681b ldr r3, [r3, #0] + 8002722: 430a orrs r2, r1 + 8002724: 601a str r2, [r3, #0] + } + } +#endif /* USE_SPI_CRC */ + + /* Configure : NSS management, TI Mode, NSS Pulse, Data size and Rx Fifo threshold */ + WRITE_REG(hspi->Instance->CR2, (((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE) | + 8002726: 687b ldr r3, [r7, #4] + 8002728: 699b ldr r3, [r3, #24] + 800272a: 0c1b lsrs r3, r3, #16 + 800272c: f003 0204 and.w r2, r3, #4 + 8002730: 687b ldr r3, [r7, #4] + 8002732: 6a5b ldr r3, [r3, #36] @ 0x24 + 8002734: f003 0310 and.w r3, r3, #16 + 8002738: 431a orrs r2, r3 + 800273a: 687b ldr r3, [r7, #4] + 800273c: 6b5b ldr r3, [r3, #52] @ 0x34 + 800273e: f003 0308 and.w r3, r3, #8 + 8002742: 431a orrs r2, r3 + 8002744: 687b ldr r3, [r7, #4] + 8002746: 68db ldr r3, [r3, #12] + 8002748: f403 6370 and.w r3, r3, #3840 @ 0xf00 + 800274c: ea42 0103 orr.w r1, r2, r3 + 8002750: 68fb ldr r3, [r7, #12] + 8002752: f403 5280 and.w r2, r3, #4096 @ 0x1000 + 8002756: 687b ldr r3, [r7, #4] + 8002758: 681b ldr r3, [r3, #0] + 800275a: 430a orrs r2, r1 + 800275c: 605a str r2, [r3, #4] +#if defined(SPI_I2SCFGR_I2SMOD) + /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ + CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); +#endif /* SPI_I2SCFGR_I2SMOD */ + + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + 800275e: 687b ldr r3, [r7, #4] + 8002760: 2200 movs r2, #0 + 8002762: 661a str r2, [r3, #96] @ 0x60 + hspi->State = HAL_SPI_STATE_READY; + 8002764: 687b ldr r3, [r7, #4] + 8002766: 2201 movs r2, #1 + 8002768: f883 205d strb.w r2, [r3, #93] @ 0x5d + + return HAL_OK; + 800276c: 2300 movs r3, #0 +} + 800276e: 4618 mov r0, r3 + 8002770: 3710 adds r7, #16 + 8002772: 46bd mov sp, r7 + 8002774: bd80 pop {r7, pc} + +08002776 : + * @param Size amount of data to be sent + * @param Timeout Timeout duration * @retval HAL status */ -HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) +HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout) { - 8006a88: e92d 4fb0 stmdb sp!, {r4, r5, r7, r8, r9, sl, fp, lr} - 8006a8c: b08a sub sp, #40 @ 0x28 - 8006a8e: af00 add r7, sp, #0 - 8006a90: 60f8 str r0, [r7, #12] - uint32_t tmpreg; - uint16_t brrtemp; - UART_ClockSourceTypeDef clocksource; - uint32_t usartdiv; - HAL_StatusTypeDef ret = HAL_OK; - 8006a92: 2300 movs r3, #0 - 8006a94: f887 3022 strb.w r3, [r7, #34] @ 0x22 - * 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 ; - 8006a98: 68fb ldr r3, [r7, #12] - 8006a9a: 689a ldr r2, [r3, #8] - 8006a9c: 68fb ldr r3, [r7, #12] - 8006a9e: 691b ldr r3, [r3, #16] - 8006aa0: 431a orrs r2, r3 - 8006aa2: 68fb ldr r3, [r7, #12] - 8006aa4: 695b ldr r3, [r3, #20] - 8006aa6: 431a orrs r2, r3 - 8006aa8: 68fb ldr r3, [r7, #12] - 8006aaa: 69db ldr r3, [r3, #28] - 8006aac: 4313 orrs r3, r2 - 8006aae: 627b str r3, [r7, #36] @ 0x24 - MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); - 8006ab0: 68fb ldr r3, [r7, #12] - 8006ab2: 681b ldr r3, [r3, #0] - 8006ab4: 681a ldr r2, [r3, #0] - 8006ab6: 4ba5 ldr r3, [pc, #660] @ (8006d4c ) - 8006ab8: 4013 ands r3, r2 - 8006aba: 68fa ldr r2, [r7, #12] - 8006abc: 6812 ldr r2, [r2, #0] - 8006abe: 6a79 ldr r1, [r7, #36] @ 0x24 - 8006ac0: 430b orrs r3, r1 - 8006ac2: 6013 str r3, [r2, #0] + 8002776: b580 push {r7, lr} + 8002778: b088 sub sp, #32 + 800277a: af00 add r7, sp, #0 + 800277c: 60f8 str r0, [r7, #12] + 800277e: 60b9 str r1, [r7, #8] + 8002780: 603b str r3, [r7, #0] + 8002782: 4613 mov r3, r2 + 8002784: 80fb strh r3, [r7, #6] - /*-------------------------- 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); - 8006ac4: 68fb ldr r3, [r7, #12] - 8006ac6: 681b ldr r3, [r3, #0] - 8006ac8: 685b ldr r3, [r3, #4] - 8006aca: f423 5140 bic.w r1, r3, #12288 @ 0x3000 - 8006ace: 68fb ldr r3, [r7, #12] - 8006ad0: 68da ldr r2, [r3, #12] - 8006ad2: 68fb ldr r3, [r7, #12] - 8006ad4: 681b ldr r3, [r3, #0] - 8006ad6: 430a orrs r2, r1 - 8006ad8: 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; - 8006ada: 68fb ldr r3, [r7, #12] - 8006adc: 699b ldr r3, [r3, #24] - 8006ade: 627b str r3, [r7, #36] @ 0x24 + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); - if (!(UART_INSTANCE_LOWPOWER(huart))) - 8006ae0: 68fb ldr r3, [r7, #12] - 8006ae2: 681b ldr r3, [r3, #0] - 8006ae4: 4a9a ldr r2, [pc, #616] @ (8006d50 ) - 8006ae6: 4293 cmp r3, r2 - 8006ae8: d004 beq.n 8006af4 + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + 8002786: f7fe fe9d bl 80014c4 + 800278a: 61f8 str r0, [r7, #28] + initial_TxXferCount = Size; + 800278c: 88fb ldrh r3, [r7, #6] + 800278e: 837b strh r3, [r7, #26] + + if (hspi->State != HAL_SPI_STATE_READY) + 8002790: 68fb ldr r3, [r7, #12] + 8002792: f893 305d ldrb.w r3, [r3, #93] @ 0x5d + 8002796: b2db uxtb r3, r3 + 8002798: 2b01 cmp r3, #1 + 800279a: d001 beq.n 80027a0 { - tmpreg |= huart->Init.OneBitSampling; - 8006aea: 68fb ldr r3, [r7, #12] - 8006aec: 6a1b ldr r3, [r3, #32] - 8006aee: 6a7a ldr r2, [r7, #36] @ 0x24 - 8006af0: 4313 orrs r3, r2 - 8006af2: 627b str r3, [r7, #36] @ 0x24 + return HAL_BUSY; + 800279c: 2302 movs r3, #2 + 800279e: e15c b.n 8002a5a } - MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); - 8006af4: 68fb ldr r3, [r7, #12] - 8006af6: 681b ldr r3, [r3, #0] - 8006af8: 689b ldr r3, [r3, #8] - 8006afa: f423 6130 bic.w r1, r3, #2816 @ 0xb00 - 8006afe: 68fb ldr r3, [r7, #12] - 8006b00: 681b ldr r3, [r3, #0] - 8006b02: 6a7a ldr r2, [r7, #36] @ 0x24 - 8006b04: 430a orrs r2, r1 - 8006b06: 609a str r2, [r3, #8] - * - UART Clock Prescaler : set PRESCALER according to huart->Init.ClockPrescaler value */ - MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); -#endif /* USART_PRESC_PRESCALER */ - /*-------------------------- USART BRR Configuration -----------------------*/ - UART_GETCLOCKSOURCE(huart, clocksource); - 8006b08: 68fb ldr r3, [r7, #12] - 8006b0a: 681b ldr r3, [r3, #0] - 8006b0c: 4a91 ldr r2, [pc, #580] @ (8006d54 ) - 8006b0e: 4293 cmp r3, r2 - 8006b10: d126 bne.n 8006b60 - 8006b12: 4b91 ldr r3, [pc, #580] @ (8006d58 ) - 8006b14: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8006b18: f003 0303 and.w r3, r3, #3 - 8006b1c: 2b03 cmp r3, #3 - 8006b1e: d81b bhi.n 8006b58 - 8006b20: a201 add r2, pc, #4 @ (adr r2, 8006b28 ) - 8006b22: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8006b26: bf00 nop - 8006b28: 08006b39 .word 0x08006b39 - 8006b2c: 08006b49 .word 0x08006b49 - 8006b30: 08006b41 .word 0x08006b41 - 8006b34: 08006b51 .word 0x08006b51 - 8006b38: 2301 movs r3, #1 - 8006b3a: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006b3e: e0d6 b.n 8006cee - 8006b40: 2302 movs r3, #2 - 8006b42: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006b46: e0d2 b.n 8006cee - 8006b48: 2304 movs r3, #4 - 8006b4a: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006b4e: e0ce b.n 8006cee - 8006b50: 2308 movs r3, #8 - 8006b52: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006b56: e0ca b.n 8006cee - 8006b58: 2310 movs r3, #16 - 8006b5a: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006b5e: e0c6 b.n 8006cee - 8006b60: 68fb ldr r3, [r7, #12] - 8006b62: 681b ldr r3, [r3, #0] - 8006b64: 4a7d ldr r2, [pc, #500] @ (8006d5c ) - 8006b66: 4293 cmp r3, r2 - 8006b68: d138 bne.n 8006bdc - 8006b6a: 4b7b ldr r3, [pc, #492] @ (8006d58 ) - 8006b6c: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8006b70: f003 030c and.w r3, r3, #12 - 8006b74: 2b0c cmp r3, #12 - 8006b76: d82d bhi.n 8006bd4 - 8006b78: a201 add r2, pc, #4 @ (adr r2, 8006b80 ) - 8006b7a: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8006b7e: bf00 nop - 8006b80: 08006bb5 .word 0x08006bb5 - 8006b84: 08006bd5 .word 0x08006bd5 - 8006b88: 08006bd5 .word 0x08006bd5 - 8006b8c: 08006bd5 .word 0x08006bd5 - 8006b90: 08006bc5 .word 0x08006bc5 - 8006b94: 08006bd5 .word 0x08006bd5 - 8006b98: 08006bd5 .word 0x08006bd5 - 8006b9c: 08006bd5 .word 0x08006bd5 - 8006ba0: 08006bbd .word 0x08006bbd - 8006ba4: 08006bd5 .word 0x08006bd5 - 8006ba8: 08006bd5 .word 0x08006bd5 - 8006bac: 08006bd5 .word 0x08006bd5 - 8006bb0: 08006bcd .word 0x08006bcd - 8006bb4: 2300 movs r3, #0 - 8006bb6: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006bba: e098 b.n 8006cee - 8006bbc: 2302 movs r3, #2 - 8006bbe: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006bc2: e094 b.n 8006cee - 8006bc4: 2304 movs r3, #4 - 8006bc6: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006bca: e090 b.n 8006cee - 8006bcc: 2308 movs r3, #8 - 8006bce: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006bd2: e08c b.n 8006cee - 8006bd4: 2310 movs r3, #16 - 8006bd6: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006bda: e088 b.n 8006cee - 8006bdc: 68fb ldr r3, [r7, #12] - 8006bde: 681b ldr r3, [r3, #0] - 8006be0: 4a5f ldr r2, [pc, #380] @ (8006d60 ) - 8006be2: 4293 cmp r3, r2 - 8006be4: d125 bne.n 8006c32 - 8006be6: 4b5c ldr r3, [pc, #368] @ (8006d58 ) - 8006be8: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8006bec: f003 0330 and.w r3, r3, #48 @ 0x30 - 8006bf0: 2b30 cmp r3, #48 @ 0x30 - 8006bf2: d016 beq.n 8006c22 - 8006bf4: 2b30 cmp r3, #48 @ 0x30 - 8006bf6: d818 bhi.n 8006c2a - 8006bf8: 2b20 cmp r3, #32 - 8006bfa: d00a beq.n 8006c12 - 8006bfc: 2b20 cmp r3, #32 - 8006bfe: d814 bhi.n 8006c2a - 8006c00: 2b00 cmp r3, #0 - 8006c02: d002 beq.n 8006c0a - 8006c04: 2b10 cmp r3, #16 - 8006c06: d008 beq.n 8006c1a - 8006c08: e00f b.n 8006c2a - 8006c0a: 2300 movs r3, #0 - 8006c0c: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c10: e06d b.n 8006cee - 8006c12: 2302 movs r3, #2 - 8006c14: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c18: e069 b.n 8006cee - 8006c1a: 2304 movs r3, #4 - 8006c1c: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c20: e065 b.n 8006cee - 8006c22: 2308 movs r3, #8 - 8006c24: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c28: e061 b.n 8006cee - 8006c2a: 2310 movs r3, #16 - 8006c2c: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c30: e05d b.n 8006cee - 8006c32: 68fb ldr r3, [r7, #12] - 8006c34: 681b ldr r3, [r3, #0] - 8006c36: 4a4b ldr r2, [pc, #300] @ (8006d64 ) - 8006c38: 4293 cmp r3, r2 - 8006c3a: d125 bne.n 8006c88 - 8006c3c: 4b46 ldr r3, [pc, #280] @ (8006d58 ) - 8006c3e: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8006c42: f003 03c0 and.w r3, r3, #192 @ 0xc0 - 8006c46: 2bc0 cmp r3, #192 @ 0xc0 - 8006c48: d016 beq.n 8006c78 - 8006c4a: 2bc0 cmp r3, #192 @ 0xc0 - 8006c4c: d818 bhi.n 8006c80 - 8006c4e: 2b80 cmp r3, #128 @ 0x80 - 8006c50: d00a beq.n 8006c68 - 8006c52: 2b80 cmp r3, #128 @ 0x80 - 8006c54: d814 bhi.n 8006c80 - 8006c56: 2b00 cmp r3, #0 - 8006c58: d002 beq.n 8006c60 - 8006c5a: 2b40 cmp r3, #64 @ 0x40 - 8006c5c: d008 beq.n 8006c70 - 8006c5e: e00f b.n 8006c80 - 8006c60: 2300 movs r3, #0 - 8006c62: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c66: e042 b.n 8006cee - 8006c68: 2302 movs r3, #2 - 8006c6a: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c6e: e03e b.n 8006cee - 8006c70: 2304 movs r3, #4 - 8006c72: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c76: e03a b.n 8006cee - 8006c78: 2308 movs r3, #8 - 8006c7a: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c7e: e036 b.n 8006cee - 8006c80: 2310 movs r3, #16 - 8006c82: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006c86: e032 b.n 8006cee - 8006c88: 68fb ldr r3, [r7, #12] - 8006c8a: 681b ldr r3, [r3, #0] - 8006c8c: 4a30 ldr r2, [pc, #192] @ (8006d50 ) - 8006c8e: 4293 cmp r3, r2 - 8006c90: d12a bne.n 8006ce8 - 8006c92: 4b31 ldr r3, [pc, #196] @ (8006d58 ) - 8006c94: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 - 8006c98: f403 6340 and.w r3, r3, #3072 @ 0xc00 - 8006c9c: f5b3 6f40 cmp.w r3, #3072 @ 0xc00 - 8006ca0: d01a beq.n 8006cd8 - 8006ca2: f5b3 6f40 cmp.w r3, #3072 @ 0xc00 - 8006ca6: d81b bhi.n 8006ce0 - 8006ca8: f5b3 6f00 cmp.w r3, #2048 @ 0x800 - 8006cac: d00c beq.n 8006cc8 - 8006cae: f5b3 6f00 cmp.w r3, #2048 @ 0x800 - 8006cb2: d815 bhi.n 8006ce0 - 8006cb4: 2b00 cmp r3, #0 - 8006cb6: d003 beq.n 8006cc0 - 8006cb8: f5b3 6f80 cmp.w r3, #1024 @ 0x400 - 8006cbc: d008 beq.n 8006cd0 - 8006cbe: e00f b.n 8006ce0 - 8006cc0: 2300 movs r3, #0 - 8006cc2: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006cc6: e012 b.n 8006cee - 8006cc8: 2302 movs r3, #2 - 8006cca: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006cce: e00e b.n 8006cee - 8006cd0: 2304 movs r3, #4 - 8006cd2: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006cd6: e00a b.n 8006cee - 8006cd8: 2308 movs r3, #8 - 8006cda: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006cde: e006 b.n 8006cee - 8006ce0: 2310 movs r3, #16 - 8006ce2: f887 3023 strb.w r3, [r7, #35] @ 0x23 - 8006ce6: e002 b.n 8006cee - 8006ce8: 2310 movs r3, #16 - 8006cea: f887 3023 strb.w r3, [r7, #35] @ 0x23 - - /* Check LPUART instance */ - if (UART_INSTANCE_LOWPOWER(huart)) - 8006cee: 68fb ldr r3, [r7, #12] - 8006cf0: 681b ldr r3, [r3, #0] - 8006cf2: 4a17 ldr r2, [pc, #92] @ (8006d50 ) - 8006cf4: 4293 cmp r3, r2 - 8006cf6: f040 808b bne.w 8006e10 + if ((pData == NULL) || (Size == 0U)) + 80027a0: 68bb ldr r3, [r7, #8] + 80027a2: 2b00 cmp r3, #0 + 80027a4: d002 beq.n 80027ac + 80027a6: 88fb ldrh r3, [r7, #6] + 80027a8: 2b00 cmp r3, #0 + 80027aa: d101 bne.n 80027b0 { - /* Retrieve frequency clock */ - switch (clocksource) - 8006cfa: f897 3023 ldrb.w r3, [r7, #35] @ 0x23 - 8006cfe: 2b08 cmp r3, #8 - 8006d00: d834 bhi.n 8006d6c - 8006d02: a201 add r2, pc, #4 @ (adr r2, 8006d08 ) - 8006d04: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8006d08: 08006d2d .word 0x08006d2d - 8006d0c: 08006d6d .word 0x08006d6d - 8006d10: 08006d35 .word 0x08006d35 - 8006d14: 08006d6d .word 0x08006d6d - 8006d18: 08006d3b .word 0x08006d3b - 8006d1c: 08006d6d .word 0x08006d6d - 8006d20: 08006d6d .word 0x08006d6d - 8006d24: 08006d6d .word 0x08006d6d - 8006d28: 08006d43 .word 0x08006d43 - { - case UART_CLOCKSOURCE_PCLK1: - pclk = HAL_RCC_GetPCLK1Freq(); - 8006d2c: f7ff f9ea bl 8006104 - 8006d30: 61f8 str r0, [r7, #28] - break; - 8006d32: e021 b.n 8006d78 - case UART_CLOCKSOURCE_HSI: - pclk = (uint32_t) HSI_VALUE; - 8006d34: 4b0c ldr r3, [pc, #48] @ (8006d68 ) - 8006d36: 61fb str r3, [r7, #28] - break; - 8006d38: e01e b.n 8006d78 - case UART_CLOCKSOURCE_SYSCLK: - pclk = HAL_RCC_GetSysClockFreq(); - 8006d3a: f7ff f94b bl 8005fd4 - 8006d3e: 61f8 str r0, [r7, #28] - break; - 8006d40: e01a b.n 8006d78 - case UART_CLOCKSOURCE_LSE: - pclk = (uint32_t) LSE_VALUE; - 8006d42: f44f 4300 mov.w r3, #32768 @ 0x8000 - 8006d46: 61fb str r3, [r7, #28] - break; - 8006d48: e016 b.n 8006d78 - 8006d4a: bf00 nop - 8006d4c: efff69f3 .word 0xefff69f3 - 8006d50: 40008000 .word 0x40008000 - 8006d54: 40013800 .word 0x40013800 - 8006d58: 40021000 .word 0x40021000 - 8006d5c: 40004400 .word 0x40004400 - 8006d60: 40004800 .word 0x40004800 - 8006d64: 40004c00 .word 0x40004c00 - 8006d68: 00f42400 .word 0x00f42400 - default: - pclk = 0U; - 8006d6c: 2300 movs r3, #0 - 8006d6e: 61fb str r3, [r7, #28] - ret = HAL_ERROR; - 8006d70: 2301 movs r3, #1 - 8006d72: f887 3022 strb.w r3, [r7, #34] @ 0x22 - break; - 8006d76: bf00 nop - } + return HAL_ERROR; + 80027ac: 2301 movs r3, #1 + 80027ae: e154 b.n 8002a5a + } - /* If proper clock source reported */ - if (pclk != 0U) - 8006d78: 69fb ldr r3, [r7, #28] - 8006d7a: 2b00 cmp r3, #0 - 8006d7c: f000 80fa beq.w 8006f74 - } /* if ( (lpuart_ker_ck_pres < (3 * huart->Init.BaudRate) ) || - (lpuart_ker_ck_pres > (4096 * huart->Init.BaudRate) )) */ -#else - /* No Prescaler applicable */ - /* Ensure that Frequency clock is in the range [3 * baudrate, 4096 * baudrate] */ - if ((pclk < (3U * huart->Init.BaudRate)) || - 8006d80: 68fb ldr r3, [r7, #12] - 8006d82: 685a ldr r2, [r3, #4] - 8006d84: 4613 mov r3, r2 - 8006d86: 005b lsls r3, r3, #1 - 8006d88: 4413 add r3, r2 - 8006d8a: 69fa ldr r2, [r7, #28] - 8006d8c: 429a cmp r2, r3 - 8006d8e: d305 bcc.n 8006d9c - (pclk > (4096U * huart->Init.BaudRate))) - 8006d90: 68fb ldr r3, [r7, #12] - 8006d92: 685b ldr r3, [r3, #4] - 8006d94: 031b lsls r3, r3, #12 - if ((pclk < (3U * huart->Init.BaudRate)) || - 8006d96: 69fa ldr r2, [r7, #28] - 8006d98: 429a cmp r2, r3 - 8006d9a: d903 bls.n 8006da4 + /* Process Locked */ + __HAL_LOCK(hspi); + 80027b0: 68fb ldr r3, [r7, #12] + 80027b2: f893 305c ldrb.w r3, [r3, #92] @ 0x5c + 80027b6: 2b01 cmp r3, #1 + 80027b8: d101 bne.n 80027be + 80027ba: 2302 movs r3, #2 + 80027bc: e14d b.n 8002a5a + 80027be: 68fb ldr r3, [r7, #12] + 80027c0: 2201 movs r2, #1 + 80027c2: f883 205c strb.w r2, [r3, #92] @ 0x5c + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_TX; + 80027c6: 68fb ldr r3, [r7, #12] + 80027c8: 2203 movs r2, #3 + 80027ca: f883 205d strb.w r2, [r3, #93] @ 0x5d + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + 80027ce: 68fb ldr r3, [r7, #12] + 80027d0: 2200 movs r2, #0 + 80027d2: 661a str r2, [r3, #96] @ 0x60 + hspi->pTxBuffPtr = (const uint8_t *)pData; + 80027d4: 68fb ldr r3, [r7, #12] + 80027d6: 68ba ldr r2, [r7, #8] + 80027d8: 639a str r2, [r3, #56] @ 0x38 + hspi->TxXferSize = Size; + 80027da: 68fb ldr r3, [r7, #12] + 80027dc: 88fa ldrh r2, [r7, #6] + 80027de: 879a strh r2, [r3, #60] @ 0x3c + hspi->TxXferCount = Size; + 80027e0: 68fb ldr r3, [r7, #12] + 80027e2: 88fa ldrh r2, [r7, #6] + 80027e4: 87da strh r2, [r3, #62] @ 0x3e + + /*Init field not used in handle to zero */ + hspi->pRxBuffPtr = (uint8_t *)NULL; + 80027e6: 68fb ldr r3, [r7, #12] + 80027e8: 2200 movs r2, #0 + 80027ea: 641a str r2, [r3, #64] @ 0x40 + hspi->RxXferSize = 0U; + 80027ec: 68fb ldr r3, [r7, #12] + 80027ee: 2200 movs r2, #0 + 80027f0: f8a3 2044 strh.w r2, [r3, #68] @ 0x44 + hspi->RxXferCount = 0U; + 80027f4: 68fb ldr r3, [r7, #12] + 80027f6: 2200 movs r2, #0 + 80027f8: f8a3 2046 strh.w r2, [r3, #70] @ 0x46 + hspi->TxISR = NULL; + 80027fc: 68fb ldr r3, [r7, #12] + 80027fe: 2200 movs r2, #0 + 8002800: 651a str r2, [r3, #80] @ 0x50 + hspi->RxISR = NULL; + 8002802: 68fb ldr r3, [r7, #12] + 8002804: 2200 movs r2, #0 + 8002806: 64da str r2, [r3, #76] @ 0x4c + + /* Configure communication direction : 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + 8002808: 68fb ldr r3, [r7, #12] + 800280a: 689b ldr r3, [r3, #8] + 800280c: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 + 8002810: d10f bne.n 8002832 + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + 8002812: 68fb ldr r3, [r7, #12] + 8002814: 681b ldr r3, [r3, #0] + 8002816: 681a ldr r2, [r3, #0] + 8002818: 68fb ldr r3, [r7, #12] + 800281a: 681b ldr r3, [r3, #0] + 800281c: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8002820: 601a str r2, [r3, #0] + SPI_1LINE_TX(hspi); + 8002822: 68fb ldr r3, [r7, #12] + 8002824: 681b ldr r3, [r3, #0] + 8002826: 681a ldr r2, [r3, #0] + 8002828: 68fb ldr r3, [r7, #12] + 800282a: 681b ldr r3, [r3, #0] + 800282c: f442 4280 orr.w r2, r2, #16384 @ 0x4000 + 8002830: 601a str r2, [r3, #0] + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + 8002832: 68fb ldr r3, [r7, #12] + 8002834: 681b ldr r3, [r3, #0] + 8002836: 681b ldr r3, [r3, #0] + 8002838: f003 0340 and.w r3, r3, #64 @ 0x40 + 800283c: 2b40 cmp r3, #64 @ 0x40 + 800283e: d007 beq.n 8002850 + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + 8002840: 68fb ldr r3, [r7, #12] + 8002842: 681b ldr r3, [r3, #0] + 8002844: 681a ldr r2, [r3, #0] + 8002846: 68fb ldr r3, [r7, #12] + 8002848: 681b ldr r3, [r3, #0] + 800284a: f042 0240 orr.w r2, r2, #64 @ 0x40 + 800284e: 601a str r2, [r3, #0] + } + + /* Transmit data in 16 Bit mode */ + if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) + 8002850: 68fb ldr r3, [r7, #12] + 8002852: 68db ldr r3, [r3, #12] + 8002854: f5b3 6fe0 cmp.w r3, #1792 @ 0x700 + 8002858: d952 bls.n 8002900 + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + 800285a: 68fb ldr r3, [r7, #12] + 800285c: 685b ldr r3, [r3, #4] + 800285e: 2b00 cmp r3, #0 + 8002860: d002 beq.n 8002868 + 8002862: 8b7b ldrh r3, [r7, #26] + 8002864: 2b01 cmp r3, #1 + 8002866: d145 bne.n 80028f4 + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + 8002868: 68fb ldr r3, [r7, #12] + 800286a: 6b9b ldr r3, [r3, #56] @ 0x38 + 800286c: 881a ldrh r2, [r3, #0] + 800286e: 68fb ldr r3, [r7, #12] + 8002870: 681b ldr r3, [r3, #0] + 8002872: 60da str r2, [r3, #12] + hspi->pTxBuffPtr += sizeof(uint16_t); + 8002874: 68fb ldr r3, [r7, #12] + 8002876: 6b9b ldr r3, [r3, #56] @ 0x38 + 8002878: 1c9a adds r2, r3, #2 + 800287a: 68fb ldr r3, [r7, #12] + 800287c: 639a str r2, [r3, #56] @ 0x38 + hspi->TxXferCount--; + 800287e: 68fb ldr r3, [r7, #12] + 8002880: 8fdb ldrh r3, [r3, #62] @ 0x3e + 8002882: b29b uxth r3, r3 + 8002884: 3b01 subs r3, #1 + 8002886: b29a uxth r2, r3 + 8002888: 68fb ldr r3, [r7, #12] + 800288a: 87da strh r2, [r3, #62] @ 0x3e + } + /* Transmit data in 16 Bit mode */ + while (hspi->TxXferCount > 0U) + 800288c: e032 b.n 80028f4 + { + /* Wait until TXE flag is set to send data */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) + 800288e: 68fb ldr r3, [r7, #12] + 8002890: 681b ldr r3, [r3, #0] + 8002892: 689b ldr r3, [r3, #8] + 8002894: f003 0302 and.w r3, r3, #2 + 8002898: 2b02 cmp r3, #2 + 800289a: d112 bne.n 80028c2 { - ret = HAL_ERROR; - 8006d9c: 2301 movs r3, #1 - 8006d9e: f887 3022 strb.w r3, [r7, #34] @ 0x22 - 8006da2: e0e7 b.n 8006f74 + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + 800289c: 68fb ldr r3, [r7, #12] + 800289e: 6b9b ldr r3, [r3, #56] @ 0x38 + 80028a0: 881a ldrh r2, [r3, #0] + 80028a2: 68fb ldr r3, [r7, #12] + 80028a4: 681b ldr r3, [r3, #0] + 80028a6: 60da str r2, [r3, #12] + hspi->pTxBuffPtr += sizeof(uint16_t); + 80028a8: 68fb ldr r3, [r7, #12] + 80028aa: 6b9b ldr r3, [r3, #56] @ 0x38 + 80028ac: 1c9a adds r2, r3, #2 + 80028ae: 68fb ldr r3, [r7, #12] + 80028b0: 639a str r2, [r3, #56] @ 0x38 + hspi->TxXferCount--; + 80028b2: 68fb ldr r3, [r7, #12] + 80028b4: 8fdb ldrh r3, [r3, #62] @ 0x3e + 80028b6: b29b uxth r3, r3 + 80028b8: 3b01 subs r3, #1 + 80028ba: b29a uxth r2, r3 + 80028bc: 68fb ldr r3, [r7, #12] + 80028be: 87da strh r2, [r3, #62] @ 0x3e + 80028c0: e018 b.n 80028f4 } else { - usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate)); - 8006da4: 69fb ldr r3, [r7, #28] - 8006da6: 2200 movs r2, #0 - 8006da8: 461c mov r4, r3 - 8006daa: 4615 mov r5, r2 - 8006dac: f04f 0200 mov.w r2, #0 - 8006db0: f04f 0300 mov.w r3, #0 - 8006db4: 022b lsls r3, r5, #8 - 8006db6: ea43 6314 orr.w r3, r3, r4, lsr #24 - 8006dba: 0222 lsls r2, r4, #8 - 8006dbc: 68f9 ldr r1, [r7, #12] - 8006dbe: 6849 ldr r1, [r1, #4] - 8006dc0: 0849 lsrs r1, r1, #1 - 8006dc2: 2000 movs r0, #0 - 8006dc4: 4688 mov r8, r1 - 8006dc6: 4681 mov r9, r0 - 8006dc8: eb12 0a08 adds.w sl, r2, r8 - 8006dcc: eb43 0b09 adc.w fp, r3, r9 - 8006dd0: 68fb ldr r3, [r7, #12] - 8006dd2: 685b ldr r3, [r3, #4] - 8006dd4: 2200 movs r2, #0 - 8006dd6: 603b str r3, [r7, #0] - 8006dd8: 607a str r2, [r7, #4] - 8006dda: e9d7 2300 ldrd r2, r3, [r7] - 8006dde: 4650 mov r0, sl - 8006de0: 4659 mov r1, fp - 8006de2: f7f9 fee9 bl 8000bb8 <__aeabi_uldivmod> - 8006de6: 4602 mov r2, r0 - 8006de8: 460b mov r3, r1 - 8006dea: 4613 mov r3, r2 - 8006dec: 61bb str r3, [r7, #24] - if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) - 8006dee: 69bb ldr r3, [r7, #24] - 8006df0: f5b3 7f40 cmp.w r3, #768 @ 0x300 - 8006df4: d308 bcc.n 8006e08 - 8006df6: 69bb ldr r3, [r7, #24] - 8006df8: f5b3 1f80 cmp.w r3, #1048576 @ 0x100000 - 8006dfc: d204 bcs.n 8006e08 + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + 80028c2: f7fe fdff bl 80014c4 + 80028c6: 4602 mov r2, r0 + 80028c8: 69fb ldr r3, [r7, #28] + 80028ca: 1ad3 subs r3, r2, r3 + 80028cc: 683a ldr r2, [r7, #0] + 80028ce: 429a cmp r2, r3 + 80028d0: d803 bhi.n 80028da + 80028d2: 683b ldr r3, [r7, #0] + 80028d4: f1b3 3fff cmp.w r3, #4294967295 + 80028d8: d102 bne.n 80028e0 + 80028da: 683b ldr r3, [r7, #0] + 80028dc: 2b00 cmp r3, #0 + 80028de: d109 bne.n 80028f4 { - huart->Instance->BRR = usartdiv; - 8006dfe: 68fb ldr r3, [r7, #12] - 8006e00: 681b ldr r3, [r3, #0] - 8006e02: 69ba ldr r2, [r7, #24] - 8006e04: 60da str r2, [r3, #12] - 8006e06: e0b5 b.n 8006f74 + hspi->State = HAL_SPI_STATE_READY; + 80028e0: 68fb ldr r3, [r7, #12] + 80028e2: 2201 movs r2, #1 + 80028e4: f883 205d strb.w r2, [r3, #93] @ 0x5d + __HAL_UNLOCK(hspi); + 80028e8: 68fb ldr r3, [r7, #12] + 80028ea: 2200 movs r2, #0 + 80028ec: f883 205c strb.w r2, [r3, #92] @ 0x5c + return HAL_TIMEOUT; + 80028f0: 2303 movs r3, #3 + 80028f2: e0b2 b.n 8002a5a + while (hspi->TxXferCount > 0U) + 80028f4: 68fb ldr r3, [r7, #12] + 80028f6: 8fdb ldrh r3, [r3, #62] @ 0x3e + 80028f8: b29b uxth r3, r3 + 80028fa: 2b00 cmp r3, #0 + 80028fc: d1c7 bne.n 800288e + 80028fe: e083 b.n 8002a08 + } + } + /* Transmit data in 8 Bit mode */ + else + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + 8002900: 68fb ldr r3, [r7, #12] + 8002902: 685b ldr r3, [r3, #4] + 8002904: 2b00 cmp r3, #0 + 8002906: d002 beq.n 800290e + 8002908: 8b7b ldrh r3, [r7, #26] + 800290a: 2b01 cmp r3, #1 + 800290c: d177 bne.n 80029fe + { + if (hspi->TxXferCount > 1U) + 800290e: 68fb ldr r3, [r7, #12] + 8002910: 8fdb ldrh r3, [r3, #62] @ 0x3e + 8002912: b29b uxth r3, r3 + 8002914: 2b01 cmp r3, #1 + 8002916: d912 bls.n 800293e + { + /* write on the data register in packing mode */ + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + 8002918: 68fb ldr r3, [r7, #12] + 800291a: 6b9b ldr r3, [r3, #56] @ 0x38 + 800291c: 881a ldrh r2, [r3, #0] + 800291e: 68fb ldr r3, [r7, #12] + 8002920: 681b ldr r3, [r3, #0] + 8002922: 60da str r2, [r3, #12] + hspi->pTxBuffPtr += sizeof(uint16_t); + 8002924: 68fb ldr r3, [r7, #12] + 8002926: 6b9b ldr r3, [r3, #56] @ 0x38 + 8002928: 1c9a adds r2, r3, #2 + 800292a: 68fb ldr r3, [r7, #12] + 800292c: 639a str r2, [r3, #56] @ 0x38 + hspi->TxXferCount -= 2U; + 800292e: 68fb ldr r3, [r7, #12] + 8002930: 8fdb ldrh r3, [r3, #62] @ 0x3e + 8002932: b29b uxth r3, r3 + 8002934: 3b02 subs r3, #2 + 8002936: b29a uxth r2, r3 + 8002938: 68fb ldr r3, [r7, #12] + 800293a: 87da strh r2, [r3, #62] @ 0x3e + 800293c: e05f b.n 80029fe + } + else + { + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + 800293e: 68fb ldr r3, [r7, #12] + 8002940: 6b9a ldr r2, [r3, #56] @ 0x38 + 8002942: 68fb ldr r3, [r7, #12] + 8002944: 681b ldr r3, [r3, #0] + 8002946: 330c adds r3, #12 + 8002948: 7812 ldrb r2, [r2, #0] + 800294a: 701a strb r2, [r3, #0] + hspi->pTxBuffPtr ++; + 800294c: 68fb ldr r3, [r7, #12] + 800294e: 6b9b ldr r3, [r3, #56] @ 0x38 + 8002950: 1c5a adds r2, r3, #1 + 8002952: 68fb ldr r3, [r7, #12] + 8002954: 639a str r2, [r3, #56] @ 0x38 + hspi->TxXferCount--; + 8002956: 68fb ldr r3, [r7, #12] + 8002958: 8fdb ldrh r3, [r3, #62] @ 0x3e + 800295a: b29b uxth r3, r3 + 800295c: 3b01 subs r3, #1 + 800295e: b29a uxth r2, r3 + 8002960: 68fb ldr r3, [r7, #12] + 8002962: 87da strh r2, [r3, #62] @ 0x3e + } + } + while (hspi->TxXferCount > 0U) + 8002964: e04b b.n 80029fe + { + /* Wait until TXE flag is set to send data */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) + 8002966: 68fb ldr r3, [r7, #12] + 8002968: 681b ldr r3, [r3, #0] + 800296a: 689b ldr r3, [r3, #8] + 800296c: f003 0302 and.w r3, r3, #2 + 8002970: 2b02 cmp r3, #2 + 8002972: d12b bne.n 80029cc + { + if (hspi->TxXferCount > 1U) + 8002974: 68fb ldr r3, [r7, #12] + 8002976: 8fdb ldrh r3, [r3, #62] @ 0x3e + 8002978: b29b uxth r3, r3 + 800297a: 2b01 cmp r3, #1 + 800297c: d912 bls.n 80029a4 + { + /* write on the data register in packing mode */ + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + 800297e: 68fb ldr r3, [r7, #12] + 8002980: 6b9b ldr r3, [r3, #56] @ 0x38 + 8002982: 881a ldrh r2, [r3, #0] + 8002984: 68fb ldr r3, [r7, #12] + 8002986: 681b ldr r3, [r3, #0] + 8002988: 60da str r2, [r3, #12] + hspi->pTxBuffPtr += sizeof(uint16_t); + 800298a: 68fb ldr r3, [r7, #12] + 800298c: 6b9b ldr r3, [r3, #56] @ 0x38 + 800298e: 1c9a adds r2, r3, #2 + 8002990: 68fb ldr r3, [r7, #12] + 8002992: 639a str r2, [r3, #56] @ 0x38 + hspi->TxXferCount -= 2U; + 8002994: 68fb ldr r3, [r7, #12] + 8002996: 8fdb ldrh r3, [r3, #62] @ 0x3e + 8002998: b29b uxth r3, r3 + 800299a: 3b02 subs r3, #2 + 800299c: b29a uxth r2, r3 + 800299e: 68fb ldr r3, [r7, #12] + 80029a0: 87da strh r2, [r3, #62] @ 0x3e + 80029a2: e02c b.n 80029fe } else { - ret = HAL_ERROR; - 8006e08: 2301 movs r3, #1 - 8006e0a: f887 3022 strb.w r3, [r7, #34] @ 0x22 - 8006e0e: e0b1 b.n 8006f74 - } /* if ( (pclk < (3 * huart->Init.BaudRate) ) || (pclk > (4096 * huart->Init.BaudRate) )) */ -#endif /* USART_PRESC_PRESCALER */ - } /* if (pclk != 0) */ - } - /* Check UART Over Sampling to set Baud Rate Register */ - else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) - 8006e10: 68fb ldr r3, [r7, #12] - 8006e12: 69db ldr r3, [r3, #28] - 8006e14: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 - 8006e18: d15d bne.n 8006ed6 - { - switch (clocksource) - 8006e1a: f897 3023 ldrb.w r3, [r7, #35] @ 0x23 - 8006e1e: 2b08 cmp r3, #8 - 8006e20: d827 bhi.n 8006e72 - 8006e22: a201 add r2, pc, #4 @ (adr r2, 8006e28 ) - 8006e24: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8006e28: 08006e4d .word 0x08006e4d - 8006e2c: 08006e55 .word 0x08006e55 - 8006e30: 08006e5d .word 0x08006e5d - 8006e34: 08006e73 .word 0x08006e73 - 8006e38: 08006e63 .word 0x08006e63 - 8006e3c: 08006e73 .word 0x08006e73 - 8006e40: 08006e73 .word 0x08006e73 - 8006e44: 08006e73 .word 0x08006e73 - 8006e48: 08006e6b .word 0x08006e6b - { - case UART_CLOCKSOURCE_PCLK1: - pclk = HAL_RCC_GetPCLK1Freq(); - 8006e4c: f7ff f95a bl 8006104 - 8006e50: 61f8 str r0, [r7, #28] - break; - 8006e52: e014 b.n 8006e7e - case UART_CLOCKSOURCE_PCLK2: - pclk = HAL_RCC_GetPCLK2Freq(); - 8006e54: f7ff f96c bl 8006130 - 8006e58: 61f8 str r0, [r7, #28] - break; - 8006e5a: e010 b.n 8006e7e - case UART_CLOCKSOURCE_HSI: - pclk = (uint32_t) HSI_VALUE; - 8006e5c: 4b4c ldr r3, [pc, #304] @ (8006f90 ) - 8006e5e: 61fb str r3, [r7, #28] - break; - 8006e60: e00d b.n 8006e7e - case UART_CLOCKSOURCE_SYSCLK: - pclk = HAL_RCC_GetSysClockFreq(); - 8006e62: f7ff f8b7 bl 8005fd4 - 8006e66: 61f8 str r0, [r7, #28] - break; - 8006e68: e009 b.n 8006e7e - case UART_CLOCKSOURCE_LSE: - pclk = (uint32_t) LSE_VALUE; - 8006e6a: f44f 4300 mov.w r3, #32768 @ 0x8000 - 8006e6e: 61fb str r3, [r7, #28] - break; - 8006e70: e005 b.n 8006e7e - default: - pclk = 0U; - 8006e72: 2300 movs r3, #0 - 8006e74: 61fb str r3, [r7, #28] - ret = HAL_ERROR; - 8006e76: 2301 movs r3, #1 - 8006e78: f887 3022 strb.w r3, [r7, #34] @ 0x22 - break; - 8006e7c: bf00 nop - } - - /* USARTDIV must be greater than or equal to 0d16 */ - if (pclk != 0U) - 8006e7e: 69fb ldr r3, [r7, #28] - 8006e80: 2b00 cmp r3, #0 - 8006e82: d077 beq.n 8006f74 - { -#if defined(USART_PRESC_PRESCALER) - usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); -#else - usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); - 8006e84: 69fb ldr r3, [r7, #28] - 8006e86: 005a lsls r2, r3, #1 - 8006e88: 68fb ldr r3, [r7, #12] - 8006e8a: 685b ldr r3, [r3, #4] - 8006e8c: 085b lsrs r3, r3, #1 - 8006e8e: 441a add r2, r3 - 8006e90: 68fb ldr r3, [r7, #12] - 8006e92: 685b ldr r3, [r3, #4] - 8006e94: fbb2 f3f3 udiv r3, r2, r3 - 8006e98: 61bb str r3, [r7, #24] -#endif /* USART_PRESC_PRESCALER */ - if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) - 8006e9a: 69bb ldr r3, [r7, #24] - 8006e9c: 2b0f cmp r3, #15 - 8006e9e: d916 bls.n 8006ece - 8006ea0: 69bb ldr r3, [r7, #24] - 8006ea2: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 - 8006ea6: d212 bcs.n 8006ece - { - brrtemp = (uint16_t)(usartdiv & 0xFFF0U); - 8006ea8: 69bb ldr r3, [r7, #24] - 8006eaa: b29b uxth r3, r3 - 8006eac: f023 030f bic.w r3, r3, #15 - 8006eb0: 82fb strh r3, [r7, #22] - brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); - 8006eb2: 69bb ldr r3, [r7, #24] - 8006eb4: 085b lsrs r3, r3, #1 - 8006eb6: b29b uxth r3, r3 - 8006eb8: f003 0307 and.w r3, r3, #7 - 8006ebc: b29a uxth r2, r3 - 8006ebe: 8afb ldrh r3, [r7, #22] - 8006ec0: 4313 orrs r3, r2 - 8006ec2: 82fb strh r3, [r7, #22] - huart->Instance->BRR = brrtemp; - 8006ec4: 68fb ldr r3, [r7, #12] - 8006ec6: 681b ldr r3, [r3, #0] - 8006ec8: 8afa ldrh r2, [r7, #22] - 8006eca: 60da str r2, [r3, #12] - 8006ecc: e052 b.n 8006f74 + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + 80029a4: 68fb ldr r3, [r7, #12] + 80029a6: 6b9a ldr r2, [r3, #56] @ 0x38 + 80029a8: 68fb ldr r3, [r7, #12] + 80029aa: 681b ldr r3, [r3, #0] + 80029ac: 330c adds r3, #12 + 80029ae: 7812 ldrb r2, [r2, #0] + 80029b0: 701a strb r2, [r3, #0] + hspi->pTxBuffPtr++; + 80029b2: 68fb ldr r3, [r7, #12] + 80029b4: 6b9b ldr r3, [r3, #56] @ 0x38 + 80029b6: 1c5a adds r2, r3, #1 + 80029b8: 68fb ldr r3, [r7, #12] + 80029ba: 639a str r2, [r3, #56] @ 0x38 + hspi->TxXferCount--; + 80029bc: 68fb ldr r3, [r7, #12] + 80029be: 8fdb ldrh r3, [r3, #62] @ 0x3e + 80029c0: b29b uxth r3, r3 + 80029c2: 3b01 subs r3, #1 + 80029c4: b29a uxth r2, r3 + 80029c6: 68fb ldr r3, [r7, #12] + 80029c8: 87da strh r2, [r3, #62] @ 0x3e + 80029ca: e018 b.n 80029fe + } } else { - ret = HAL_ERROR; - 8006ece: 2301 movs r3, #1 - 8006ed0: f887 3022 strb.w r3, [r7, #34] @ 0x22 - 8006ed4: e04e b.n 8006f74 - } - } + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + 80029cc: f7fe fd7a bl 80014c4 + 80029d0: 4602 mov r2, r0 + 80029d2: 69fb ldr r3, [r7, #28] + 80029d4: 1ad3 subs r3, r2, r3 + 80029d6: 683a ldr r2, [r7, #0] + 80029d8: 429a cmp r2, r3 + 80029da: d803 bhi.n 80029e4 + 80029dc: 683b ldr r3, [r7, #0] + 80029de: f1b3 3fff cmp.w r3, #4294967295 + 80029e2: d102 bne.n 80029ea + 80029e4: 683b ldr r3, [r7, #0] + 80029e6: 2b00 cmp r3, #0 + 80029e8: d109 bne.n 80029fe + { + hspi->State = HAL_SPI_STATE_READY; + 80029ea: 68fb ldr r3, [r7, #12] + 80029ec: 2201 movs r2, #1 + 80029ee: f883 205d strb.w r2, [r3, #93] @ 0x5d + __HAL_UNLOCK(hspi); + 80029f2: 68fb ldr r3, [r7, #12] + 80029f4: 2200 movs r2, #0 + 80029f6: f883 205c strb.w r2, [r3, #92] @ 0x5c + return HAL_TIMEOUT; + 80029fa: 2303 movs r3, #3 + 80029fc: e02d b.n 8002a5a + while (hspi->TxXferCount > 0U) + 80029fe: 68fb ldr r3, [r7, #12] + 8002a00: 8fdb ldrh r3, [r3, #62] @ 0x3e + 8002a02: b29b uxth r3, r3 + 8002a04: 2b00 cmp r3, #0 + 8002a06: d1ae bne.n 8002966 + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) + 8002a08: 69fa ldr r2, [r7, #28] + 8002a0a: 6839 ldr r1, [r7, #0] + 8002a0c: 68f8 ldr r0, [r7, #12] + 8002a0e: f000 f947 bl 8002ca0 + 8002a12: 4603 mov r3, r0 + 8002a14: 2b00 cmp r3, #0 + 8002a16: d002 beq.n 8002a1e + { + hspi->ErrorCode = HAL_SPI_ERROR_FLAG; + 8002a18: 68fb ldr r3, [r7, #12] + 8002a1a: 2220 movs r2, #32 + 8002a1c: 661a str r2, [r3, #96] @ 0x60 + } + + /* Clear overrun flag in 2 Lines communication mode because received is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + 8002a1e: 68fb ldr r3, [r7, #12] + 8002a20: 689b ldr r3, [r3, #8] + 8002a22: 2b00 cmp r3, #0 + 8002a24: d10a bne.n 8002a3c + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + 8002a26: 2300 movs r3, #0 + 8002a28: 617b str r3, [r7, #20] + 8002a2a: 68fb ldr r3, [r7, #12] + 8002a2c: 681b ldr r3, [r3, #0] + 8002a2e: 68db ldr r3, [r3, #12] + 8002a30: 617b str r3, [r7, #20] + 8002a32: 68fb ldr r3, [r7, #12] + 8002a34: 681b ldr r3, [r3, #0] + 8002a36: 689b ldr r3, [r3, #8] + 8002a38: 617b str r3, [r7, #20] + 8002a3a: 697b ldr r3, [r7, #20] + } + + hspi->State = HAL_SPI_STATE_READY; + 8002a3c: 68fb ldr r3, [r7, #12] + 8002a3e: 2201 movs r2, #1 + 8002a40: f883 205d strb.w r2, [r3, #93] @ 0x5d + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + 8002a44: 68fb ldr r3, [r7, #12] + 8002a46: 2200 movs r2, #0 + 8002a48: f883 205c strb.w r2, [r3, #92] @ 0x5c + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + 8002a4c: 68fb ldr r3, [r7, #12] + 8002a4e: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002a50: 2b00 cmp r3, #0 + 8002a52: d001 beq.n 8002a58 + { + return HAL_ERROR; + 8002a54: 2301 movs r3, #1 + 8002a56: e000 b.n 8002a5a } else { - switch (clocksource) - 8006ed6: f897 3023 ldrb.w r3, [r7, #35] @ 0x23 - 8006eda: 2b08 cmp r3, #8 - 8006edc: d827 bhi.n 8006f2e - 8006ede: a201 add r2, pc, #4 @ (adr r2, 8006ee4 ) - 8006ee0: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8006ee4: 08006f09 .word 0x08006f09 - 8006ee8: 08006f11 .word 0x08006f11 - 8006eec: 08006f19 .word 0x08006f19 - 8006ef0: 08006f2f .word 0x08006f2f - 8006ef4: 08006f1f .word 0x08006f1f - 8006ef8: 08006f2f .word 0x08006f2f - 8006efc: 08006f2f .word 0x08006f2f - 8006f00: 08006f2f .word 0x08006f2f - 8006f04: 08006f27 .word 0x08006f27 - { - case UART_CLOCKSOURCE_PCLK1: - pclk = HAL_RCC_GetPCLK1Freq(); - 8006f08: f7ff f8fc bl 8006104 - 8006f0c: 61f8 str r0, [r7, #28] - break; - 8006f0e: e014 b.n 8006f3a - case UART_CLOCKSOURCE_PCLK2: - pclk = HAL_RCC_GetPCLK2Freq(); - 8006f10: f7ff f90e bl 8006130 - 8006f14: 61f8 str r0, [r7, #28] - break; - 8006f16: e010 b.n 8006f3a - case UART_CLOCKSOURCE_HSI: - pclk = (uint32_t) HSI_VALUE; - 8006f18: 4b1d ldr r3, [pc, #116] @ (8006f90 ) - 8006f1a: 61fb str r3, [r7, #28] - break; - 8006f1c: e00d b.n 8006f3a - case UART_CLOCKSOURCE_SYSCLK: - pclk = HAL_RCC_GetSysClockFreq(); - 8006f1e: f7ff f859 bl 8005fd4 - 8006f22: 61f8 str r0, [r7, #28] - break; - 8006f24: e009 b.n 8006f3a - case UART_CLOCKSOURCE_LSE: - pclk = (uint32_t) LSE_VALUE; - 8006f26: f44f 4300 mov.w r3, #32768 @ 0x8000 - 8006f2a: 61fb str r3, [r7, #28] - break; - 8006f2c: e005 b.n 8006f3a - default: - pclk = 0U; - 8006f2e: 2300 movs r3, #0 - 8006f30: 61fb str r3, [r7, #28] - ret = HAL_ERROR; - 8006f32: 2301 movs r3, #1 - 8006f34: f887 3022 strb.w r3, [r7, #34] @ 0x22 - break; - 8006f38: bf00 nop - } - - if (pclk != 0U) - 8006f3a: 69fb ldr r3, [r7, #28] - 8006f3c: 2b00 cmp r3, #0 - 8006f3e: d019 beq.n 8006f74 - { - /* USARTDIV must be greater than or equal to 0d16 */ -#if defined(USART_PRESC_PRESCALER) - usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); -#else - usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); - 8006f40: 68fb ldr r3, [r7, #12] - 8006f42: 685b ldr r3, [r3, #4] - 8006f44: 085a lsrs r2, r3, #1 - 8006f46: 69fb ldr r3, [r7, #28] - 8006f48: 441a add r2, r3 - 8006f4a: 68fb ldr r3, [r7, #12] - 8006f4c: 685b ldr r3, [r3, #4] - 8006f4e: fbb2 f3f3 udiv r3, r2, r3 - 8006f52: 61bb str r3, [r7, #24] -#endif /* USART_PRESC_PRESCALER */ - if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) - 8006f54: 69bb ldr r3, [r7, #24] - 8006f56: 2b0f cmp r3, #15 - 8006f58: d909 bls.n 8006f6e - 8006f5a: 69bb ldr r3, [r7, #24] - 8006f5c: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 - 8006f60: d205 bcs.n 8006f6e - { - huart->Instance->BRR = (uint16_t)usartdiv; - 8006f62: 69bb ldr r3, [r7, #24] - 8006f64: b29a uxth r2, r3 - 8006f66: 68fb ldr r3, [r7, #12] - 8006f68: 681b ldr r3, [r3, #0] - 8006f6a: 60da str r2, [r3, #12] - 8006f6c: e002 b.n 8006f74 - } - else - { - ret = HAL_ERROR; - 8006f6e: 2301 movs r3, #1 - 8006f70: f887 3022 strb.w r3, [r7, #34] @ 0x22 - huart->NbTxDataToProcess = 1; - huart->NbRxDataToProcess = 1; -#endif /* USART_CR1_FIFOEN */ - - /* Clear ISR function pointers */ - huart->RxISR = NULL; - 8006f74: 68fb ldr r3, [r7, #12] - 8006f76: 2200 movs r2, #0 - 8006f78: 669a str r2, [r3, #104] @ 0x68 - huart->TxISR = NULL; - 8006f7a: 68fb ldr r3, [r7, #12] - 8006f7c: 2200 movs r2, #0 - 8006f7e: 66da str r2, [r3, #108] @ 0x6c - - return ret; - 8006f80: f897 3022 ldrb.w r3, [r7, #34] @ 0x22 -} - 8006f84: 4618 mov r0, r3 - 8006f86: 3728 adds r7, #40 @ 0x28 - 8006f88: 46bd mov sp, r7 - 8006f8a: e8bd 8fb0 ldmia.w sp!, {r4, r5, r7, r8, r9, sl, fp, pc} - 8006f8e: bf00 nop - 8006f90: 00f42400 .word 0x00f42400 - -08006f94 : - * @brief Configure the UART peripheral advanced features. - * @param huart UART handle. - * @retval None - */ -void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) -{ - 8006f94: b480 push {r7} - 8006f96: b083 sub sp, #12 - 8006f98: af00 add r7, sp, #0 - 8006f9a: 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 RX/TX pins swap */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) - 8006f9c: 687b ldr r3, [r7, #4] - 8006f9e: 6a5b ldr r3, [r3, #36] @ 0x24 - 8006fa0: f003 0308 and.w r3, r3, #8 - 8006fa4: 2b00 cmp r3, #0 - 8006fa6: d00a beq.n 8006fbe - { - assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); - 8006fa8: 687b ldr r3, [r7, #4] - 8006faa: 681b ldr r3, [r3, #0] - 8006fac: 685b ldr r3, [r3, #4] - 8006fae: f423 4100 bic.w r1, r3, #32768 @ 0x8000 - 8006fb2: 687b ldr r3, [r7, #4] - 8006fb4: 6b5a ldr r2, [r3, #52] @ 0x34 - 8006fb6: 687b ldr r3, [r7, #4] - 8006fb8: 681b ldr r3, [r3, #0] - 8006fba: 430a orrs r2, r1 - 8006fbc: 605a str r2, [r3, #4] - } - - /* if required, configure TX pin active level inversion */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) - 8006fbe: 687b ldr r3, [r7, #4] - 8006fc0: 6a5b ldr r3, [r3, #36] @ 0x24 - 8006fc2: f003 0301 and.w r3, r3, #1 - 8006fc6: 2b00 cmp r3, #0 - 8006fc8: d00a beq.n 8006fe0 - { - assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); - 8006fca: 687b ldr r3, [r7, #4] - 8006fcc: 681b ldr r3, [r3, #0] - 8006fce: 685b ldr r3, [r3, #4] - 8006fd0: f423 3100 bic.w r1, r3, #131072 @ 0x20000 - 8006fd4: 687b ldr r3, [r7, #4] - 8006fd6: 6a9a ldr r2, [r3, #40] @ 0x28 - 8006fd8: 687b ldr r3, [r7, #4] - 8006fda: 681b ldr r3, [r3, #0] - 8006fdc: 430a orrs r2, r1 - 8006fde: 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)) - 8006fe0: 687b ldr r3, [r7, #4] - 8006fe2: 6a5b ldr r3, [r3, #36] @ 0x24 - 8006fe4: f003 0302 and.w r3, r3, #2 - 8006fe8: 2b00 cmp r3, #0 - 8006fea: d00a beq.n 8007002 - { - assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); - 8006fec: 687b ldr r3, [r7, #4] - 8006fee: 681b ldr r3, [r3, #0] - 8006ff0: 685b ldr r3, [r3, #4] - 8006ff2: f423 3180 bic.w r1, r3, #65536 @ 0x10000 - 8006ff6: 687b ldr r3, [r7, #4] - 8006ff8: 6ada ldr r2, [r3, #44] @ 0x2c - 8006ffa: 687b ldr r3, [r7, #4] - 8006ffc: 681b ldr r3, [r3, #0] - 8006ffe: 430a orrs r2, r1 - 8007000: 605a str r2, [r3, #4] - } - - /* if required, configure data inversion */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) - 8007002: 687b ldr r3, [r7, #4] - 8007004: 6a5b ldr r3, [r3, #36] @ 0x24 - 8007006: f003 0304 and.w r3, r3, #4 - 800700a: 2b00 cmp r3, #0 - 800700c: d00a beq.n 8007024 - { - assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); - 800700e: 687b ldr r3, [r7, #4] - 8007010: 681b ldr r3, [r3, #0] - 8007012: 685b ldr r3, [r3, #4] - 8007014: f423 2180 bic.w r1, r3, #262144 @ 0x40000 - 8007018: 687b ldr r3, [r7, #4] - 800701a: 6b1a ldr r2, [r3, #48] @ 0x30 - 800701c: 687b ldr r3, [r7, #4] - 800701e: 681b ldr r3, [r3, #0] - 8007020: 430a orrs r2, r1 - 8007022: 605a str r2, [r3, #4] - } - - /* if required, configure RX overrun detection disabling */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) - 8007024: 687b ldr r3, [r7, #4] - 8007026: 6a5b ldr r3, [r3, #36] @ 0x24 - 8007028: f003 0310 and.w r3, r3, #16 - 800702c: 2b00 cmp r3, #0 - 800702e: d00a beq.n 8007046 - { - assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); - MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); - 8007030: 687b ldr r3, [r7, #4] - 8007032: 681b ldr r3, [r3, #0] - 8007034: 689b ldr r3, [r3, #8] - 8007036: f423 5180 bic.w r1, r3, #4096 @ 0x1000 - 800703a: 687b ldr r3, [r7, #4] - 800703c: 6b9a ldr r2, [r3, #56] @ 0x38 - 800703e: 687b ldr r3, [r7, #4] - 8007040: 681b ldr r3, [r3, #0] - 8007042: 430a orrs r2, r1 - 8007044: 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)) - 8007046: 687b ldr r3, [r7, #4] - 8007048: 6a5b ldr r3, [r3, #36] @ 0x24 - 800704a: f003 0320 and.w r3, r3, #32 - 800704e: 2b00 cmp r3, #0 - 8007050: d00a beq.n 8007068 - { - assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); - MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); - 8007052: 687b ldr r3, [r7, #4] - 8007054: 681b ldr r3, [r3, #0] - 8007056: 689b ldr r3, [r3, #8] - 8007058: f423 5100 bic.w r1, r3, #8192 @ 0x2000 - 800705c: 687b ldr r3, [r7, #4] - 800705e: 6bda ldr r2, [r3, #60] @ 0x3c - 8007060: 687b ldr r3, [r7, #4] - 8007062: 681b ldr r3, [r3, #0] - 8007064: 430a orrs r2, r1 - 8007066: 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)) - 8007068: 687b ldr r3, [r7, #4] - 800706a: 6a5b ldr r3, [r3, #36] @ 0x24 - 800706c: f003 0340 and.w r3, r3, #64 @ 0x40 - 8007070: 2b00 cmp r3, #0 - 8007072: d01a beq.n 80070aa - { - 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); - 8007074: 687b ldr r3, [r7, #4] - 8007076: 681b ldr r3, [r3, #0] - 8007078: 685b ldr r3, [r3, #4] - 800707a: f423 1180 bic.w r1, r3, #1048576 @ 0x100000 - 800707e: 687b ldr r3, [r7, #4] - 8007080: 6c1a ldr r2, [r3, #64] @ 0x40 - 8007082: 687b ldr r3, [r7, #4] - 8007084: 681b ldr r3, [r3, #0] - 8007086: 430a orrs r2, r1 - 8007088: 605a str r2, [r3, #4] - /* set auto Baudrate detection parameters if detection is enabled */ - if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) - 800708a: 687b ldr r3, [r7, #4] - 800708c: 6c1b ldr r3, [r3, #64] @ 0x40 - 800708e: f5b3 1f80 cmp.w r3, #1048576 @ 0x100000 - 8007092: d10a bne.n 80070aa - { - assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); - 8007094: 687b ldr r3, [r7, #4] - 8007096: 681b ldr r3, [r3, #0] - 8007098: 685b ldr r3, [r3, #4] - 800709a: f423 01c0 bic.w r1, r3, #6291456 @ 0x600000 - 800709e: 687b ldr r3, [r7, #4] - 80070a0: 6c5a ldr r2, [r3, #68] @ 0x44 - 80070a2: 687b ldr r3, [r7, #4] - 80070a4: 681b ldr r3, [r3, #0] - 80070a6: 430a orrs r2, r1 - 80070a8: 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)) - 80070aa: 687b ldr r3, [r7, #4] - 80070ac: 6a5b ldr r3, [r3, #36] @ 0x24 - 80070ae: f003 0380 and.w r3, r3, #128 @ 0x80 - 80070b2: 2b00 cmp r3, #0 - 80070b4: d00a beq.n 80070cc - { - assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); - 80070b6: 687b ldr r3, [r7, #4] - 80070b8: 681b ldr r3, [r3, #0] - 80070ba: 685b ldr r3, [r3, #4] - 80070bc: f423 2100 bic.w r1, r3, #524288 @ 0x80000 - 80070c0: 687b ldr r3, [r7, #4] - 80070c2: 6c9a ldr r2, [r3, #72] @ 0x48 - 80070c4: 687b ldr r3, [r7, #4] - 80070c6: 681b ldr r3, [r3, #0] - 80070c8: 430a orrs r2, r1 - 80070ca: 605a str r2, [r3, #4] + return HAL_OK; + 8002a58: 2300 movs r3, #0 } } - 80070cc: bf00 nop - 80070ce: 370c adds r7, #12 - 80070d0: 46bd mov sp, r7 - 80070d2: f85d 7b04 ldr.w r7, [sp], #4 - 80070d6: 4770 bx lr + 8002a5a: 4618 mov r0, r3 + 8002a5c: 3720 adds r7, #32 + 8002a5e: 46bd mov sp, r7 + 8002a60: bd80 pop {r7, pc} + ... -080070d8 : - * @brief Check the UART Idle State. - * @param huart UART handle. +08002a64 : + * @param Tickstart tick start value * @retval HAL status */ -HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) +static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State, + uint32_t Timeout, uint32_t Tickstart) { - 80070d8: b580 push {r7, lr} - 80070da: b098 sub sp, #96 @ 0x60 - 80070dc: af02 add r7, sp, #8 - 80070de: 6078 str r0, [r7, #4] - uint32_t tickstart; + 8002a64: b580 push {r7, lr} + 8002a66: b088 sub sp, #32 + 8002a68: af00 add r7, sp, #0 + 8002a6a: 60f8 str r0, [r7, #12] + 8002a6c: 60b9 str r1, [r7, #8] + 8002a6e: 603b str r3, [r7, #0] + 8002a70: 4613 mov r3, r2 + 8002a72: 71fb strb r3, [r7, #7] + __IO uint32_t count; + uint32_t tmp_timeout; + uint32_t tmp_tickstart; - /* Initialize the UART ErrorCode */ - huart->ErrorCode = HAL_UART_ERROR_NONE; - 80070e0: 687b ldr r3, [r7, #4] - 80070e2: 2200 movs r2, #0 - 80070e4: f8c3 2084 str.w r2, [r3, #132] @ 0x84 + /* Adjust Timeout value in case of end of transfer */ + tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); + 8002a74: f7fe fd26 bl 80014c4 + 8002a78: 4602 mov r2, r0 + 8002a7a: 6abb ldr r3, [r7, #40] @ 0x28 + 8002a7c: 1a9b subs r3, r3, r2 + 8002a7e: 683a ldr r2, [r7, #0] + 8002a80: 4413 add r3, r2 + 8002a82: 61fb str r3, [r7, #28] + tmp_tickstart = HAL_GetTick(); + 8002a84: f7fe fd1e bl 80014c4 + 8002a88: 61b8 str r0, [r7, #24] - /* Init tickstart for timeout management */ - tickstart = HAL_GetTick(); - 80070e8: f7fd f818 bl 800411c - 80070ec: 6578 str r0, [r7, #84] @ 0x54 + /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ + count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U); + 8002a8a: 4b39 ldr r3, [pc, #228] @ (8002b70 ) + 8002a8c: 681b ldr r3, [r3, #0] + 8002a8e: 015b lsls r3, r3, #5 + 8002a90: 0d1b lsrs r3, r3, #20 + 8002a92: 69fa ldr r2, [r7, #28] + 8002a94: fb02 f303 mul.w r3, r2, r3 + 8002a98: 617b str r3, [r7, #20] - /* Check if the Transmitter is enabled */ - if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) - 80070ee: 687b ldr r3, [r7, #4] - 80070f0: 681b ldr r3, [r3, #0] - 80070f2: 681b ldr r3, [r3, #0] - 80070f4: f003 0308 and.w r3, r3, #8 - 80070f8: 2b08 cmp r3, #8 - 80070fa: d12e bne.n 800715a + while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) + 8002a9a: e054 b.n 8002b46 { - /* Wait until TEACK flag is set */ - if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) - 80070fc: f06f 437e mvn.w r3, #4261412864 @ 0xfe000000 - 8007100: 9300 str r3, [sp, #0] - 8007102: 6d7b ldr r3, [r7, #84] @ 0x54 - 8007104: 2200 movs r2, #0 - 8007106: f44f 1100 mov.w r1, #2097152 @ 0x200000 - 800710a: 6878 ldr r0, [r7, #4] - 800710c: f000 f88c bl 8007228 - 8007110: 4603 mov r3, r0 - 8007112: 2b00 cmp r3, #0 - 8007114: d021 beq.n 800715a - { - /* Disable TXE interrupt for the interrupt process */ -#if defined(USART_CR1_FIFOEN) - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); -#else - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE)); - 8007116: 687b ldr r3, [r7, #4] - 8007118: 681b ldr r3, [r3, #0] - 800711a: 63bb str r3, [r7, #56] @ 0x38 - */ -__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 800711c: 6bbb ldr r3, [r7, #56] @ 0x38 - 800711e: e853 3f00 ldrex r3, [r3] - 8007122: 637b str r3, [r7, #52] @ 0x34 - return(result); - 8007124: 6b7b ldr r3, [r7, #52] @ 0x34 - 8007126: f023 0380 bic.w r3, r3, #128 @ 0x80 - 800712a: 653b str r3, [r7, #80] @ 0x50 - 800712c: 687b ldr r3, [r7, #4] - 800712e: 681b ldr r3, [r3, #0] - 8007130: 461a mov r2, r3 - 8007132: 6d3b ldr r3, [r7, #80] @ 0x50 - 8007134: 647b str r3, [r7, #68] @ 0x44 - 8007136: 643a str r2, [r7, #64] @ 0x40 - */ -__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 8007138: 6c39 ldr r1, [r7, #64] @ 0x40 - 800713a: 6c7a ldr r2, [r7, #68] @ 0x44 - 800713c: e841 2300 strex r3, r2, [r1] - 8007140: 63fb str r3, [r7, #60] @ 0x3c - return(result); - 8007142: 6bfb ldr r3, [r7, #60] @ 0x3c - 8007144: 2b00 cmp r3, #0 - 8007146: d1e6 bne.n 8007116 -#endif /* USART_CR1_FIFOEN */ - - huart->gState = HAL_UART_STATE_READY; - 8007148: 687b ldr r3, [r7, #4] - 800714a: 2220 movs r2, #32 - 800714c: 67da str r2, [r3, #124] @ 0x7c - - __HAL_UNLOCK(huart); - 800714e: 687b ldr r3, [r7, #4] - 8007150: 2200 movs r2, #0 - 8007152: f883 2078 strb.w r2, [r3, #120] @ 0x78 - - /* Timeout occurred */ - return HAL_TIMEOUT; - 8007156: 2303 movs r3, #3 - 8007158: e062 b.n 8007220 - } - } - - /* Check if the Receiver is enabled */ - if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) - 800715a: 687b ldr r3, [r7, #4] - 800715c: 681b ldr r3, [r3, #0] - 800715e: 681b ldr r3, [r3, #0] - 8007160: f003 0304 and.w r3, r3, #4 - 8007164: 2b04 cmp r3, #4 - 8007166: d149 bne.n 80071fc - { - /* Wait until REACK flag is set */ - if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) - 8007168: f06f 437e mvn.w r3, #4261412864 @ 0xfe000000 - 800716c: 9300 str r3, [sp, #0] - 800716e: 6d7b ldr r3, [r7, #84] @ 0x54 - 8007170: 2200 movs r2, #0 - 8007172: f44f 0180 mov.w r1, #4194304 @ 0x400000 - 8007176: 6878 ldr r0, [r7, #4] - 8007178: f000 f856 bl 8007228 - 800717c: 4603 mov r3, r0 - 800717e: 2b00 cmp r3, #0 - 8007180: d03c beq.n 80071fc - /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) - interrupts for the interrupt process */ -#if defined(USART_CR1_FIFOEN) - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); -#else - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); - 8007182: 687b ldr r3, [r7, #4] - 8007184: 681b ldr r3, [r3, #0] - 8007186: 627b str r3, [r7, #36] @ 0x24 - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8007188: 6a7b ldr r3, [r7, #36] @ 0x24 - 800718a: e853 3f00 ldrex r3, [r3] - 800718e: 623b str r3, [r7, #32] - return(result); - 8007190: 6a3b ldr r3, [r7, #32] - 8007192: f423 7390 bic.w r3, r3, #288 @ 0x120 - 8007196: 64fb str r3, [r7, #76] @ 0x4c - 8007198: 687b ldr r3, [r7, #4] - 800719a: 681b ldr r3, [r3, #0] - 800719c: 461a mov r2, r3 - 800719e: 6cfb ldr r3, [r7, #76] @ 0x4c - 80071a0: 633b str r3, [r7, #48] @ 0x30 - 80071a2: 62fa str r2, [r7, #44] @ 0x2c - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 80071a4: 6af9 ldr r1, [r7, #44] @ 0x2c - 80071a6: 6b3a ldr r2, [r7, #48] @ 0x30 - 80071a8: e841 2300 strex r3, r2, [r1] - 80071ac: 62bb str r3, [r7, #40] @ 0x28 - return(result); - 80071ae: 6abb ldr r3, [r7, #40] @ 0x28 - 80071b0: 2b00 cmp r3, #0 - 80071b2: d1e6 bne.n 8007182 -#endif /* USART_CR1_FIFOEN */ - ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 80071b4: 687b ldr r3, [r7, #4] - 80071b6: 681b ldr r3, [r3, #0] - 80071b8: 3308 adds r3, #8 - 80071ba: 613b str r3, [r7, #16] - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 80071bc: 693b ldr r3, [r7, #16] - 80071be: e853 3f00 ldrex r3, [r3] - 80071c2: 60fb str r3, [r7, #12] - return(result); - 80071c4: 68fb ldr r3, [r7, #12] - 80071c6: f023 0301 bic.w r3, r3, #1 - 80071ca: 64bb str r3, [r7, #72] @ 0x48 - 80071cc: 687b ldr r3, [r7, #4] - 80071ce: 681b ldr r3, [r3, #0] - 80071d0: 3308 adds r3, #8 - 80071d2: 6cba ldr r2, [r7, #72] @ 0x48 - 80071d4: 61fa str r2, [r7, #28] - 80071d6: 61bb str r3, [r7, #24] - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 80071d8: 69b9 ldr r1, [r7, #24] - 80071da: 69fa ldr r2, [r7, #28] - 80071dc: e841 2300 strex r3, r2, [r1] - 80071e0: 617b str r3, [r7, #20] - return(result); - 80071e2: 697b ldr r3, [r7, #20] - 80071e4: 2b00 cmp r3, #0 - 80071e6: d1e5 bne.n 80071b4 - - huart->RxState = HAL_UART_STATE_READY; - 80071e8: 687b ldr r3, [r7, #4] - 80071ea: 2220 movs r2, #32 - 80071ec: f8c3 2080 str.w r2, [r3, #128] @ 0x80 - - __HAL_UNLOCK(huart); - 80071f0: 687b ldr r3, [r7, #4] - 80071f2: 2200 movs r2, #0 - 80071f4: f883 2078 strb.w r2, [r3, #120] @ 0x78 - - /* Timeout occurred */ - return HAL_TIMEOUT; - 80071f8: 2303 movs r3, #3 - 80071fa: e011 b.n 8007220 - } - } - - /* Initialize the UART State */ - huart->gState = HAL_UART_STATE_READY; - 80071fc: 687b ldr r3, [r7, #4] - 80071fe: 2220 movs r2, #32 - 8007200: 67da str r2, [r3, #124] @ 0x7c - huart->RxState = HAL_UART_STATE_READY; - 8007202: 687b ldr r3, [r7, #4] - 8007204: 2220 movs r2, #32 - 8007206: f8c3 2080 str.w r2, [r3, #128] @ 0x80 - huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; - 800720a: 687b ldr r3, [r7, #4] - 800720c: 2200 movs r2, #0 - 800720e: 661a str r2, [r3, #96] @ 0x60 - huart->RxEventType = HAL_UART_RXEVENT_TC; - 8007210: 687b ldr r3, [r7, #4] - 8007212: 2200 movs r2, #0 - 8007214: 665a str r2, [r3, #100] @ 0x64 - - __HAL_UNLOCK(huart); - 8007216: 687b ldr r3, [r7, #4] - 8007218: 2200 movs r2, #0 - 800721a: f883 2078 strb.w r2, [r3, #120] @ 0x78 - - return HAL_OK; - 800721e: 2300 movs r3, #0 -} - 8007220: 4618 mov r0, r3 - 8007222: 3758 adds r7, #88 @ 0x58 - 8007224: 46bd mov sp, r7 - 8007226: bd80 pop {r7, pc} - -08007228 : - * @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) -{ - 8007228: b580 push {r7, lr} - 800722a: b084 sub sp, #16 - 800722c: af00 add r7, sp, #0 - 800722e: 60f8 str r0, [r7, #12] - 8007230: 60b9 str r1, [r7, #8] - 8007232: 603b str r3, [r7, #0] - 8007234: 4613 mov r3, r2 - 8007236: 71fb strb r3, [r7, #7] - /* Wait until flag is set */ - while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) - 8007238: e04f b.n 80072da - { - /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 800723a: 69bb ldr r3, [r7, #24] - 800723c: f1b3 3fff cmp.w r3, #4294967295 - 8007240: d04b beq.n 80072da + 8002a9c: 683b ldr r3, [r7, #0] + 8002a9e: f1b3 3fff cmp.w r3, #4294967295 + 8002aa2: d050 beq.n 8002b46 { - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8007242: f7fc ff6b bl 800411c - 8007246: 4602 mov r2, r0 - 8007248: 683b ldr r3, [r7, #0] - 800724a: 1ad3 subs r3, r2, r3 - 800724c: 69ba ldr r2, [r7, #24] - 800724e: 429a cmp r2, r3 - 8007250: d302 bcc.n 8007258 - 8007252: 69bb ldr r3, [r7, #24] - 8007254: 2b00 cmp r3, #0 - 8007256: d101 bne.n 800725c - { + if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) + 8002aa4: f7fe fd0e bl 80014c4 + 8002aa8: 4602 mov r2, r0 + 8002aaa: 69bb ldr r3, [r7, #24] + 8002aac: 1ad3 subs r3, r2, r3 + 8002aae: 69fa ldr r2, [r7, #28] + 8002ab0: 429a cmp r2, r3 + 8002ab2: d902 bls.n 8002aba + 8002ab4: 69fb ldr r3, [r7, #28] + 8002ab6: 2b00 cmp r3, #0 + 8002ab8: d13d bne.n 8002b36 + /* Disable the SPI and reset the CRC: the CRC value should be cleared + on both master and slave sides in order to resynchronize the master + and slave for their respective CRC calculation */ + + /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); + 8002aba: 68fb ldr r3, [r7, #12] + 8002abc: 681b ldr r3, [r3, #0] + 8002abe: 685a ldr r2, [r3, #4] + 8002ac0: 68fb ldr r3, [r7, #12] + 8002ac2: 681b ldr r3, [r3, #0] + 8002ac4: f022 02e0 bic.w r2, r2, #224 @ 0xe0 + 8002ac8: 605a str r2, [r3, #4] + + if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) + 8002aca: 68fb ldr r3, [r7, #12] + 8002acc: 685b ldr r3, [r3, #4] + 8002ace: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8002ad2: d111 bne.n 8002af8 + 8002ad4: 68fb ldr r3, [r7, #12] + 8002ad6: 689b ldr r3, [r3, #8] + 8002ad8: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 + 8002adc: d004 beq.n 8002ae8 + || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))) + 8002ade: 68fb ldr r3, [r7, #12] + 8002ae0: 689b ldr r3, [r3, #8] + 8002ae2: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8002ae6: d107 bne.n 8002af8 + { + /* Disable SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + 8002ae8: 68fb ldr r3, [r7, #12] + 8002aea: 681b ldr r3, [r3, #0] + 8002aec: 681a ldr r2, [r3, #0] + 8002aee: 68fb ldr r3, [r7, #12] + 8002af0: 681b ldr r3, [r3, #0] + 8002af2: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8002af6: 601a str r2, [r3, #0] + } + + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + 8002af8: 68fb ldr r3, [r7, #12] + 8002afa: 6a9b ldr r3, [r3, #40] @ 0x28 + 8002afc: f5b3 5f00 cmp.w r3, #8192 @ 0x2000 + 8002b00: d10f bne.n 8002b22 + { + SPI_RESET_CRC(hspi); + 8002b02: 68fb ldr r3, [r7, #12] + 8002b04: 681b ldr r3, [r3, #0] + 8002b06: 681a ldr r2, [r3, #0] + 8002b08: 68fb ldr r3, [r7, #12] + 8002b0a: 681b ldr r3, [r3, #0] + 8002b0c: f422 5200 bic.w r2, r2, #8192 @ 0x2000 + 8002b10: 601a str r2, [r3, #0] + 8002b12: 68fb ldr r3, [r7, #12] + 8002b14: 681b ldr r3, [r3, #0] + 8002b16: 681a ldr r2, [r3, #0] + 8002b18: 68fb ldr r3, [r7, #12] + 8002b1a: 681b ldr r3, [r3, #0] + 8002b1c: f442 5200 orr.w r2, r2, #8192 @ 0x2000 + 8002b20: 601a str r2, [r3, #0] + } + + hspi->State = HAL_SPI_STATE_READY; + 8002b22: 68fb ldr r3, [r7, #12] + 8002b24: 2201 movs r2, #1 + 8002b26: f883 205d strb.w r2, [r3, #93] @ 0x5d + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + 8002b2a: 68fb ldr r3, [r7, #12] + 8002b2c: 2200 movs r2, #0 + 8002b2e: f883 205c strb.w r2, [r3, #92] @ 0x5c return HAL_TIMEOUT; - 8007258: 2303 movs r3, #3 - 800725a: e04e b.n 80072fa + 8002b32: 2303 movs r3, #3 + 8002b34: e017 b.n 8002b66 } - - if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UART_FLAG_TC)) - 800725c: 68fb ldr r3, [r7, #12] - 800725e: 681b ldr r3, [r3, #0] - 8007260: 681b ldr r3, [r3, #0] - 8007262: f003 0304 and.w r3, r3, #4 - 8007266: 2b00 cmp r3, #0 - 8007268: d037 beq.n 80072da - 800726a: 68bb ldr r3, [r7, #8] - 800726c: 2b80 cmp r3, #128 @ 0x80 - 800726e: d034 beq.n 80072da - 8007270: 68bb ldr r3, [r7, #8] - 8007272: 2b40 cmp r3, #64 @ 0x40 - 8007274: d031 beq.n 80072da + /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop procedure */ + if (count == 0U) + 8002b36: 697b ldr r3, [r7, #20] + 8002b38: 2b00 cmp r3, #0 + 8002b3a: d101 bne.n 8002b40 { - if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) - 8007276: 68fb ldr r3, [r7, #12] - 8007278: 681b ldr r3, [r3, #0] - 800727a: 69db ldr r3, [r3, #28] - 800727c: f003 0308 and.w r3, r3, #8 - 8007280: 2b08 cmp r3, #8 - 8007282: d110 bne.n 80072a6 - { - /* Clear Overrun Error flag*/ - __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); - 8007284: 68fb ldr r3, [r7, #12] - 8007286: 681b ldr r3, [r3, #0] - 8007288: 2208 movs r2, #8 - 800728a: 621a str r2, [r3, #32] - - /* Blocking error : transfer is aborted - Set the UART state ready to be able to start again the process, - Disable Rx Interrupts if ongoing */ - UART_EndRxTransfer(huart); - 800728c: 68f8 ldr r0, [r7, #12] - 800728e: f000 f838 bl 8007302 - - huart->ErrorCode = HAL_UART_ERROR_ORE; - 8007292: 68fb ldr r3, [r7, #12] - 8007294: 2208 movs r2, #8 - 8007296: f8c3 2084 str.w r2, [r3, #132] @ 0x84 - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 800729a: 68fb ldr r3, [r7, #12] - 800729c: 2200 movs r2, #0 - 800729e: f883 2078 strb.w r2, [r3, #120] @ 0x78 - - return HAL_ERROR; - 80072a2: 2301 movs r3, #1 - 80072a4: e029 b.n 80072fa - } - if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) - 80072a6: 68fb ldr r3, [r7, #12] - 80072a8: 681b ldr r3, [r3, #0] - 80072aa: 69db ldr r3, [r3, #28] - 80072ac: f403 6300 and.w r3, r3, #2048 @ 0x800 - 80072b0: f5b3 6f00 cmp.w r3, #2048 @ 0x800 - 80072b4: d111 bne.n 80072da - { - /* Clear Receiver Timeout flag*/ - __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); - 80072b6: 68fb ldr r3, [r7, #12] - 80072b8: 681b ldr r3, [r3, #0] - 80072ba: f44f 6200 mov.w r2, #2048 @ 0x800 - 80072be: 621a str r2, [r3, #32] - - /* Blocking error : transfer is aborted - Set the UART state ready to be able to start again the process, - Disable Rx Interrupts if ongoing */ - UART_EndRxTransfer(huart); - 80072c0: 68f8 ldr r0, [r7, #12] - 80072c2: f000 f81e bl 8007302 - - huart->ErrorCode = HAL_UART_ERROR_RTO; - 80072c6: 68fb ldr r3, [r7, #12] - 80072c8: 2220 movs r2, #32 - 80072ca: f8c3 2084 str.w r2, [r3, #132] @ 0x84 - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 80072ce: 68fb ldr r3, [r7, #12] - 80072d0: 2200 movs r2, #0 - 80072d2: f883 2078 strb.w r2, [r3, #120] @ 0x78 - - return HAL_TIMEOUT; - 80072d6: 2303 movs r3, #3 - 80072d8: e00f b.n 80072fa - while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) - 80072da: 68fb ldr r3, [r7, #12] - 80072dc: 681b ldr r3, [r3, #0] - 80072de: 69da ldr r2, [r3, #28] - 80072e0: 68bb ldr r3, [r7, #8] - 80072e2: 4013 ands r3, r2 - 80072e4: 68ba ldr r2, [r7, #8] - 80072e6: 429a cmp r2, r3 - 80072e8: bf0c ite eq - 80072ea: 2301 moveq r3, #1 - 80072ec: 2300 movne r3, #0 - 80072ee: b2db uxtb r3, r3 - 80072f0: 461a mov r2, r3 - 80072f2: 79fb ldrb r3, [r7, #7] - 80072f4: 429a cmp r2, r3 - 80072f6: d0a0 beq.n 800723a - } + tmp_timeout = 0U; + 8002b3c: 2300 movs r3, #0 + 8002b3e: 61fb str r3, [r7, #28] } + count--; + 8002b40: 697b ldr r3, [r7, #20] + 8002b42: 3b01 subs r3, #1 + 8002b44: 617b str r3, [r7, #20] + while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) + 8002b46: 68fb ldr r3, [r7, #12] + 8002b48: 681b ldr r3, [r3, #0] + 8002b4a: 689a ldr r2, [r3, #8] + 8002b4c: 68bb ldr r3, [r7, #8] + 8002b4e: 4013 ands r3, r2 + 8002b50: 68ba ldr r2, [r7, #8] + 8002b52: 429a cmp r2, r3 + 8002b54: bf0c ite eq + 8002b56: 2301 moveq r3, #1 + 8002b58: 2300 movne r3, #0 + 8002b5a: b2db uxtb r3, r3 + 8002b5c: 461a mov r2, r3 + 8002b5e: 79fb ldrb r3, [r7, #7] + 8002b60: 429a cmp r2, r3 + 8002b62: d19b bne.n 8002a9c } } + return HAL_OK; - 80072f8: 2300 movs r3, #0 + 8002b64: 2300 movs r3, #0 } - 80072fa: 4618 mov r0, r3 - 80072fc: 3710 adds r7, #16 - 80072fe: 46bd mov sp, r7 - 8007300: bd80 pop {r7, pc} + 8002b66: 4618 mov r0, r3 + 8002b68: 3720 adds r7, #32 + 8002b6a: 46bd mov sp, r7 + 8002b6c: bd80 pop {r7, pc} + 8002b6e: bf00 nop + 8002b70: 20000000 .word 0x20000000 -08007302 : - * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). - * @param huart UART handle. - * @retval None +08002b74 : + * @param Tickstart tick start value + * @retval HAL status */ -static void UART_EndRxTransfer(UART_HandleTypeDef *huart) +static HAL_StatusTypeDef SPI_WaitFifoStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Fifo, uint32_t State, + uint32_t Timeout, uint32_t Tickstart) { - 8007302: b480 push {r7} - 8007304: b095 sub sp, #84 @ 0x54 - 8007306: af00 add r7, sp, #0 - 8007308: 6078 str r0, [r7, #4] - /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ -#if defined(USART_CR1_FIFOEN) - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); - ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); -#else - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); - 800730a: 687b ldr r3, [r7, #4] - 800730c: 681b ldr r3, [r3, #0] - 800730e: 637b str r3, [r7, #52] @ 0x34 - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8007310: 6b7b ldr r3, [r7, #52] @ 0x34 - 8007312: e853 3f00 ldrex r3, [r3] - 8007316: 633b str r3, [r7, #48] @ 0x30 - return(result); - 8007318: 6b3b ldr r3, [r7, #48] @ 0x30 - 800731a: f423 7390 bic.w r3, r3, #288 @ 0x120 - 800731e: 64fb str r3, [r7, #76] @ 0x4c - 8007320: 687b ldr r3, [r7, #4] - 8007322: 681b ldr r3, [r3, #0] - 8007324: 461a mov r2, r3 - 8007326: 6cfb ldr r3, [r7, #76] @ 0x4c - 8007328: 643b str r3, [r7, #64] @ 0x40 - 800732a: 63fa str r2, [r7, #60] @ 0x3c - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 800732c: 6bf9 ldr r1, [r7, #60] @ 0x3c - 800732e: 6c3a ldr r2, [r7, #64] @ 0x40 - 8007330: e841 2300 strex r3, r2, [r1] - 8007334: 63bb str r3, [r7, #56] @ 0x38 - return(result); - 8007336: 6bbb ldr r3, [r7, #56] @ 0x38 - 8007338: 2b00 cmp r3, #0 - 800733a: d1e6 bne.n 800730a - ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 800733c: 687b ldr r3, [r7, #4] - 800733e: 681b ldr r3, [r3, #0] - 8007340: 3308 adds r3, #8 - 8007342: 623b str r3, [r7, #32] - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8007344: 6a3b ldr r3, [r7, #32] - 8007346: e853 3f00 ldrex r3, [r3] - 800734a: 61fb str r3, [r7, #28] - return(result); - 800734c: 69fb ldr r3, [r7, #28] - 800734e: f023 0301 bic.w r3, r3, #1 - 8007352: 64bb str r3, [r7, #72] @ 0x48 - 8007354: 687b ldr r3, [r7, #4] - 8007356: 681b ldr r3, [r3, #0] - 8007358: 3308 adds r3, #8 - 800735a: 6cba ldr r2, [r7, #72] @ 0x48 - 800735c: 62fa str r2, [r7, #44] @ 0x2c - 800735e: 62bb str r3, [r7, #40] @ 0x28 - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 8007360: 6ab9 ldr r1, [r7, #40] @ 0x28 - 8007362: 6afa ldr r2, [r7, #44] @ 0x2c - 8007364: e841 2300 strex r3, r2, [r1] - 8007368: 627b str r3, [r7, #36] @ 0x24 - return(result); - 800736a: 6a7b ldr r3, [r7, #36] @ 0x24 - 800736c: 2b00 cmp r3, #0 - 800736e: d1e5 bne.n 800733c -#endif /* USART_CR1_FIFOEN */ + 8002b74: b580 push {r7, lr} + 8002b76: b08a sub sp, #40 @ 0x28 + 8002b78: af00 add r7, sp, #0 + 8002b7a: 60f8 str r0, [r7, #12] + 8002b7c: 60b9 str r1, [r7, #8] + 8002b7e: 607a str r2, [r7, #4] + 8002b80: 603b str r3, [r7, #0] + __IO uint32_t count; + uint32_t tmp_timeout; + uint32_t tmp_tickstart; + __IO const uint8_t *ptmpreg8; + __IO uint8_t tmpreg8 = 0; + 8002b82: 2300 movs r3, #0 + 8002b84: 75fb strb r3, [r7, #23] - /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ - if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) - 8007370: 687b ldr r3, [r7, #4] - 8007372: 6e1b ldr r3, [r3, #96] @ 0x60 - 8007374: 2b01 cmp r3, #1 - 8007376: d118 bne.n 80073aa + /* Adjust Timeout value in case of end of transfer */ + tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); + 8002b86: f7fe fc9d bl 80014c4 + 8002b8a: 4602 mov r2, r0 + 8002b8c: 6b3b ldr r3, [r7, #48] @ 0x30 + 8002b8e: 1a9b subs r3, r3, r2 + 8002b90: 683a ldr r2, [r7, #0] + 8002b92: 4413 add r3, r2 + 8002b94: 627b str r3, [r7, #36] @ 0x24 + tmp_tickstart = HAL_GetTick(); + 8002b96: f7fe fc95 bl 80014c4 + 8002b9a: 6238 str r0, [r7, #32] + + /* Initialize the 8bit temporary pointer */ + ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; + 8002b9c: 68fb ldr r3, [r7, #12] + 8002b9e: 681b ldr r3, [r3, #0] + 8002ba0: 330c adds r3, #12 + 8002ba2: 61fb str r3, [r7, #28] + + /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ + count = tmp_timeout * ((SystemCoreClock * 35U) >> 20U); + 8002ba4: 4b3d ldr r3, [pc, #244] @ (8002c9c ) + 8002ba6: 681a ldr r2, [r3, #0] + 8002ba8: 4613 mov r3, r2 + 8002baa: 009b lsls r3, r3, #2 + 8002bac: 4413 add r3, r2 + 8002bae: 00da lsls r2, r3, #3 + 8002bb0: 1ad3 subs r3, r2, r3 + 8002bb2: 0d1b lsrs r3, r3, #20 + 8002bb4: 6a7a ldr r2, [r7, #36] @ 0x24 + 8002bb6: fb02 f303 mul.w r3, r2, r3 + 8002bba: 61bb str r3, [r7, #24] + + while ((hspi->Instance->SR & Fifo) != State) + 8002bbc: e060 b.n 8002c80 { - ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); - 8007378: 687b ldr r3, [r7, #4] - 800737a: 681b ldr r3, [r3, #0] - 800737c: 60fb str r3, [r7, #12] - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 800737e: 68fb ldr r3, [r7, #12] - 8007380: e853 3f00 ldrex r3, [r3] - 8007384: 60bb str r3, [r7, #8] - return(result); - 8007386: 68bb ldr r3, [r7, #8] - 8007388: f023 0310 bic.w r3, r3, #16 - 800738c: 647b str r3, [r7, #68] @ 0x44 - 800738e: 687b ldr r3, [r7, #4] - 8007390: 681b ldr r3, [r3, #0] - 8007392: 461a mov r2, r3 - 8007394: 6c7b ldr r3, [r7, #68] @ 0x44 - 8007396: 61bb str r3, [r7, #24] - 8007398: 617a str r2, [r7, #20] - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 800739a: 6979 ldr r1, [r7, #20] - 800739c: 69ba ldr r2, [r7, #24] - 800739e: e841 2300 strex r3, r2, [r1] - 80073a2: 613b str r3, [r7, #16] - return(result); - 80073a4: 693b ldr r3, [r7, #16] - 80073a6: 2b00 cmp r3, #0 - 80073a8: d1e6 bne.n 8007378 + if ((Fifo == SPI_SR_FRLVL) && (State == SPI_FRLVL_EMPTY)) + 8002bbe: 68bb ldr r3, [r7, #8] + 8002bc0: f5b3 6fc0 cmp.w r3, #1536 @ 0x600 + 8002bc4: d107 bne.n 8002bd6 + 8002bc6: 687b ldr r3, [r7, #4] + 8002bc8: 2b00 cmp r3, #0 + 8002bca: d104 bne.n 8002bd6 + { + /* Flush Data Register by a blank read */ + tmpreg8 = *ptmpreg8; + 8002bcc: 69fb ldr r3, [r7, #28] + 8002bce: 781b ldrb r3, [r3, #0] + 8002bd0: b2db uxtb r3, r3 + 8002bd2: 75fb strb r3, [r7, #23] + /* To avoid GCC warning */ + UNUSED(tmpreg8); + 8002bd4: 7dfb ldrb r3, [r7, #23] + } + + if (Timeout != HAL_MAX_DELAY) + 8002bd6: 683b ldr r3, [r7, #0] + 8002bd8: f1b3 3fff cmp.w r3, #4294967295 + 8002bdc: d050 beq.n 8002c80 + { + if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) + 8002bde: f7fe fc71 bl 80014c4 + 8002be2: 4602 mov r2, r0 + 8002be4: 6a3b ldr r3, [r7, #32] + 8002be6: 1ad3 subs r3, r2, r3 + 8002be8: 6a7a ldr r2, [r7, #36] @ 0x24 + 8002bea: 429a cmp r2, r3 + 8002bec: d902 bls.n 8002bf4 + 8002bee: 6a7b ldr r3, [r7, #36] @ 0x24 + 8002bf0: 2b00 cmp r3, #0 + 8002bf2: d13d bne.n 8002c70 + /* Disable the SPI and reset the CRC: the CRC value should be cleared + on both master and slave sides in order to resynchronize the master + and slave for their respective CRC calculation */ + + /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); + 8002bf4: 68fb ldr r3, [r7, #12] + 8002bf6: 681b ldr r3, [r3, #0] + 8002bf8: 685a ldr r2, [r3, #4] + 8002bfa: 68fb ldr r3, [r7, #12] + 8002bfc: 681b ldr r3, [r3, #0] + 8002bfe: f022 02e0 bic.w r2, r2, #224 @ 0xe0 + 8002c02: 605a str r2, [r3, #4] + + if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) + 8002c04: 68fb ldr r3, [r7, #12] + 8002c06: 685b ldr r3, [r3, #4] + 8002c08: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8002c0c: d111 bne.n 8002c32 + 8002c0e: 68fb ldr r3, [r7, #12] + 8002c10: 689b ldr r3, [r3, #8] + 8002c12: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 + 8002c16: d004 beq.n 8002c22 + || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))) + 8002c18: 68fb ldr r3, [r7, #12] + 8002c1a: 689b ldr r3, [r3, #8] + 8002c1c: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8002c20: d107 bne.n 8002c32 + { + /* Disable SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + 8002c22: 68fb ldr r3, [r7, #12] + 8002c24: 681b ldr r3, [r3, #0] + 8002c26: 681a ldr r2, [r3, #0] + 8002c28: 68fb ldr r3, [r7, #12] + 8002c2a: 681b ldr r3, [r3, #0] + 8002c2c: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8002c30: 601a str r2, [r3, #0] + } + + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + 8002c32: 68fb ldr r3, [r7, #12] + 8002c34: 6a9b ldr r3, [r3, #40] @ 0x28 + 8002c36: f5b3 5f00 cmp.w r3, #8192 @ 0x2000 + 8002c3a: d10f bne.n 8002c5c + { + SPI_RESET_CRC(hspi); + 8002c3c: 68fb ldr r3, [r7, #12] + 8002c3e: 681b ldr r3, [r3, #0] + 8002c40: 681a ldr r2, [r3, #0] + 8002c42: 68fb ldr r3, [r7, #12] + 8002c44: 681b ldr r3, [r3, #0] + 8002c46: f422 5200 bic.w r2, r2, #8192 @ 0x2000 + 8002c4a: 601a str r2, [r3, #0] + 8002c4c: 68fb ldr r3, [r7, #12] + 8002c4e: 681b ldr r3, [r3, #0] + 8002c50: 681a ldr r2, [r3, #0] + 8002c52: 68fb ldr r3, [r7, #12] + 8002c54: 681b ldr r3, [r3, #0] + 8002c56: f442 5200 orr.w r2, r2, #8192 @ 0x2000 + 8002c5a: 601a str r2, [r3, #0] + } + + hspi->State = HAL_SPI_STATE_READY; + 8002c5c: 68fb ldr r3, [r7, #12] + 8002c5e: 2201 movs r2, #1 + 8002c60: f883 205d strb.w r2, [r3, #93] @ 0x5d + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + 8002c64: 68fb ldr r3, [r7, #12] + 8002c66: 2200 movs r2, #0 + 8002c68: f883 205c strb.w r2, [r3, #92] @ 0x5c + + return HAL_TIMEOUT; + 8002c6c: 2303 movs r3, #3 + 8002c6e: e010 b.n 8002c92 + } + /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop procedure */ + if (count == 0U) + 8002c70: 69bb ldr r3, [r7, #24] + 8002c72: 2b00 cmp r3, #0 + 8002c74: d101 bne.n 8002c7a + { + tmp_timeout = 0U; + 8002c76: 2300 movs r3, #0 + 8002c78: 627b str r3, [r7, #36] @ 0x24 + } + count--; + 8002c7a: 69bb ldr r3, [r7, #24] + 8002c7c: 3b01 subs r3, #1 + 8002c7e: 61bb str r3, [r7, #24] + while ((hspi->Instance->SR & Fifo) != State) + 8002c80: 68fb ldr r3, [r7, #12] + 8002c82: 681b ldr r3, [r3, #0] + 8002c84: 689a ldr r2, [r3, #8] + 8002c86: 68bb ldr r3, [r7, #8] + 8002c88: 4013 ands r3, r2 + 8002c8a: 687a ldr r2, [r7, #4] + 8002c8c: 429a cmp r2, r3 + 8002c8e: d196 bne.n 8002bbe + } } - /* At end of Rx process, restore huart->RxState to Ready */ - huart->RxState = HAL_UART_STATE_READY; - 80073aa: 687b ldr r3, [r7, #4] - 80073ac: 2220 movs r2, #32 - 80073ae: f8c3 2080 str.w r2, [r3, #128] @ 0x80 - huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; - 80073b2: 687b ldr r3, [r7, #4] - 80073b4: 2200 movs r2, #0 - 80073b6: 661a str r2, [r3, #96] @ 0x60 - - /* Reset RxIsr function pointer */ - huart->RxISR = NULL; - 80073b8: 687b ldr r3, [r7, #4] - 80073ba: 2200 movs r2, #0 - 80073bc: 669a str r2, [r3, #104] @ 0x68 + return HAL_OK; + 8002c90: 2300 movs r3, #0 } - 80073be: bf00 nop - 80073c0: 3754 adds r7, #84 @ 0x54 - 80073c2: 46bd mov sp, r7 - 80073c4: f85d 7b04 ldr.w r7, [sp], #4 - 80073c8: 4770 bx lr + 8002c92: 4618 mov r0, r3 + 8002c94: 3728 adds r7, #40 @ 0x28 + 8002c96: 46bd mov sp, r7 + 8002c98: bd80 pop {r7, pc} + 8002c9a: bf00 nop + 8002c9c: 20000000 .word 0x20000000 -080073ca <__cvt>: - 80073ca: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - 80073ce: ec57 6b10 vmov r6, r7, d0 - 80073d2: 2f00 cmp r7, #0 - 80073d4: 460c mov r4, r1 - 80073d6: 4619 mov r1, r3 - 80073d8: 463b mov r3, r7 - 80073da: bfbb ittet lt - 80073dc: f107 4300 addlt.w r3, r7, #2147483648 @ 0x80000000 - 80073e0: 461f movlt r7, r3 - 80073e2: 2300 movge r3, #0 - 80073e4: 232d movlt r3, #45 @ 0x2d - 80073e6: 700b strb r3, [r1, #0] - 80073e8: 9b0d ldr r3, [sp, #52] @ 0x34 - 80073ea: f8dd a030 ldr.w sl, [sp, #48] @ 0x30 - 80073ee: 4691 mov r9, r2 - 80073f0: f023 0820 bic.w r8, r3, #32 - 80073f4: bfbc itt lt - 80073f6: 4632 movlt r2, r6 - 80073f8: 4616 movlt r6, r2 - 80073fa: f1b8 0f46 cmp.w r8, #70 @ 0x46 - 80073fe: d005 beq.n 800740c <__cvt+0x42> - 8007400: f1b8 0f45 cmp.w r8, #69 @ 0x45 - 8007404: d100 bne.n 8007408 <__cvt+0x3e> - 8007406: 3401 adds r4, #1 - 8007408: 2102 movs r1, #2 - 800740a: e000 b.n 800740e <__cvt+0x44> - 800740c: 2103 movs r1, #3 - 800740e: ab03 add r3, sp, #12 - 8007410: 9301 str r3, [sp, #4] - 8007412: ab02 add r3, sp, #8 - 8007414: 9300 str r3, [sp, #0] - 8007416: ec47 6b10 vmov d0, r6, r7 - 800741a: 4653 mov r3, sl - 800741c: 4622 mov r2, r4 - 800741e: f000 fe7f bl 8008120 <_dtoa_r> - 8007422: f1b8 0f47 cmp.w r8, #71 @ 0x47 - 8007426: 4605 mov r5, r0 - 8007428: d119 bne.n 800745e <__cvt+0x94> - 800742a: f019 0f01 tst.w r9, #1 - 800742e: d00e beq.n 800744e <__cvt+0x84> - 8007430: eb00 0904 add.w r9, r0, r4 - 8007434: 2200 movs r2, #0 - 8007436: 2300 movs r3, #0 - 8007438: 4630 mov r0, r6 - 800743a: 4639 mov r1, r7 - 800743c: f7f9 fb4c bl 8000ad8 <__aeabi_dcmpeq> - 8007440: b108 cbz r0, 8007446 <__cvt+0x7c> - 8007442: f8cd 900c str.w r9, [sp, #12] - 8007446: 2230 movs r2, #48 @ 0x30 - 8007448: 9b03 ldr r3, [sp, #12] - 800744a: 454b cmp r3, r9 - 800744c: d31e bcc.n 800748c <__cvt+0xc2> - 800744e: 9b03 ldr r3, [sp, #12] - 8007450: 9a0e ldr r2, [sp, #56] @ 0x38 - 8007452: 1b5b subs r3, r3, r5 - 8007454: 4628 mov r0, r5 - 8007456: 6013 str r3, [r2, #0] - 8007458: b004 add sp, #16 - 800745a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 800745e: f1b8 0f46 cmp.w r8, #70 @ 0x46 - 8007462: eb00 0904 add.w r9, r0, r4 - 8007466: d1e5 bne.n 8007434 <__cvt+0x6a> - 8007468: 7803 ldrb r3, [r0, #0] - 800746a: 2b30 cmp r3, #48 @ 0x30 - 800746c: d10a bne.n 8007484 <__cvt+0xba> - 800746e: 2200 movs r2, #0 - 8007470: 2300 movs r3, #0 - 8007472: 4630 mov r0, r6 - 8007474: 4639 mov r1, r7 - 8007476: f7f9 fb2f bl 8000ad8 <__aeabi_dcmpeq> - 800747a: b918 cbnz r0, 8007484 <__cvt+0xba> - 800747c: f1c4 0401 rsb r4, r4, #1 - 8007480: f8ca 4000 str.w r4, [sl] - 8007484: f8da 3000 ldr.w r3, [sl] - 8007488: 4499 add r9, r3 - 800748a: e7d3 b.n 8007434 <__cvt+0x6a> - 800748c: 1c59 adds r1, r3, #1 - 800748e: 9103 str r1, [sp, #12] - 8007490: 701a strb r2, [r3, #0] - 8007492: e7d9 b.n 8007448 <__cvt+0x7e> +08002ca0 : + * @param Timeout Timeout duration + * @param Tickstart tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) +{ + 8002ca0: b580 push {r7, lr} + 8002ca2: b086 sub sp, #24 + 8002ca4: af02 add r7, sp, #8 + 8002ca6: 60f8 str r0, [r7, #12] + 8002ca8: 60b9 str r1, [r7, #8] + 8002caa: 607a str r2, [r7, #4] + /* Control if the TX fifo is empty */ + if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FTLVL, SPI_FTLVL_EMPTY, Timeout, Tickstart) != HAL_OK) + 8002cac: 687b ldr r3, [r7, #4] + 8002cae: 9300 str r3, [sp, #0] + 8002cb0: 68bb ldr r3, [r7, #8] + 8002cb2: 2200 movs r2, #0 + 8002cb4: f44f 51c0 mov.w r1, #6144 @ 0x1800 + 8002cb8: 68f8 ldr r0, [r7, #12] + 8002cba: f7ff ff5b bl 8002b74 + 8002cbe: 4603 mov r3, r0 + 8002cc0: 2b00 cmp r3, #0 + 8002cc2: d007 beq.n 8002cd4 + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + 8002cc4: 68fb ldr r3, [r7, #12] + 8002cc6: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002cc8: f043 0220 orr.w r2, r3, #32 + 8002ccc: 68fb ldr r3, [r7, #12] + 8002cce: 661a str r2, [r3, #96] @ 0x60 + return HAL_TIMEOUT; + 8002cd0: 2303 movs r3, #3 + 8002cd2: e027 b.n 8002d24 + } -08007494 <__exponent>: - 8007494: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - 8007496: 2900 cmp r1, #0 - 8007498: bfba itte lt - 800749a: 4249 neglt r1, r1 - 800749c: 232d movlt r3, #45 @ 0x2d - 800749e: 232b movge r3, #43 @ 0x2b - 80074a0: 2909 cmp r1, #9 - 80074a2: 7002 strb r2, [r0, #0] - 80074a4: 7043 strb r3, [r0, #1] - 80074a6: dd29 ble.n 80074fc <__exponent+0x68> - 80074a8: f10d 0307 add.w r3, sp, #7 - 80074ac: 461d mov r5, r3 - 80074ae: 270a movs r7, #10 - 80074b0: 461a mov r2, r3 - 80074b2: fbb1 f6f7 udiv r6, r1, r7 - 80074b6: fb07 1416 mls r4, r7, r6, r1 - 80074ba: 3430 adds r4, #48 @ 0x30 - 80074bc: f802 4c01 strb.w r4, [r2, #-1] - 80074c0: 460c mov r4, r1 - 80074c2: 2c63 cmp r4, #99 @ 0x63 - 80074c4: f103 33ff add.w r3, r3, #4294967295 - 80074c8: 4631 mov r1, r6 - 80074ca: dcf1 bgt.n 80074b0 <__exponent+0x1c> - 80074cc: 3130 adds r1, #48 @ 0x30 - 80074ce: 1e94 subs r4, r2, #2 - 80074d0: f803 1c01 strb.w r1, [r3, #-1] - 80074d4: 1c41 adds r1, r0, #1 - 80074d6: 4623 mov r3, r4 - 80074d8: 42ab cmp r3, r5 - 80074da: d30a bcc.n 80074f2 <__exponent+0x5e> - 80074dc: f10d 0309 add.w r3, sp, #9 - 80074e0: 1a9b subs r3, r3, r2 - 80074e2: 42ac cmp r4, r5 - 80074e4: bf88 it hi - 80074e6: 2300 movhi r3, #0 - 80074e8: 3302 adds r3, #2 - 80074ea: 4403 add r3, r0 - 80074ec: 1a18 subs r0, r3, r0 - 80074ee: b003 add sp, #12 - 80074f0: bdf0 pop {r4, r5, r6, r7, pc} - 80074f2: f813 6b01 ldrb.w r6, [r3], #1 - 80074f6: f801 6f01 strb.w r6, [r1, #1]! - 80074fa: e7ed b.n 80074d8 <__exponent+0x44> - 80074fc: 2330 movs r3, #48 @ 0x30 - 80074fe: 3130 adds r1, #48 @ 0x30 - 8007500: 7083 strb r3, [r0, #2] - 8007502: 70c1 strb r1, [r0, #3] - 8007504: 1d03 adds r3, r0, #4 - 8007506: e7f1 b.n 80074ec <__exponent+0x58> + /* Control the BSY flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) + 8002cd4: 687b ldr r3, [r7, #4] + 8002cd6: 9300 str r3, [sp, #0] + 8002cd8: 68bb ldr r3, [r7, #8] + 8002cda: 2200 movs r2, #0 + 8002cdc: 2180 movs r1, #128 @ 0x80 + 8002cde: 68f8 ldr r0, [r7, #12] + 8002ce0: f7ff fec0 bl 8002a64 + 8002ce4: 4603 mov r3, r0 + 8002ce6: 2b00 cmp r3, #0 + 8002ce8: d007 beq.n 8002cfa + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + 8002cea: 68fb ldr r3, [r7, #12] + 8002cec: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002cee: f043 0220 orr.w r2, r3, #32 + 8002cf2: 68fb ldr r3, [r7, #12] + 8002cf4: 661a str r2, [r3, #96] @ 0x60 + return HAL_TIMEOUT; + 8002cf6: 2303 movs r3, #3 + 8002cf8: e014 b.n 8002d24 + } -08007508 <_printf_float>: - 8007508: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800750c: b08d sub sp, #52 @ 0x34 - 800750e: 460c mov r4, r1 - 8007510: f8dd 8058 ldr.w r8, [sp, #88] @ 0x58 - 8007514: 4616 mov r6, r2 - 8007516: 461f mov r7, r3 - 8007518: 4605 mov r5, r0 - 800751a: f000 fd01 bl 8007f20 <_localeconv_r> - 800751e: 6803 ldr r3, [r0, #0] - 8007520: 9304 str r3, [sp, #16] - 8007522: 4618 mov r0, r3 - 8007524: f7f8 feac bl 8000280 - 8007528: 2300 movs r3, #0 - 800752a: 930a str r3, [sp, #40] @ 0x28 - 800752c: f8d8 3000 ldr.w r3, [r8] - 8007530: 9005 str r0, [sp, #20] - 8007532: 3307 adds r3, #7 - 8007534: f023 0307 bic.w r3, r3, #7 - 8007538: f103 0208 add.w r2, r3, #8 - 800753c: f894 a018 ldrb.w sl, [r4, #24] - 8007540: f8d4 b000 ldr.w fp, [r4] - 8007544: f8c8 2000 str.w r2, [r8] - 8007548: e9d3 8900 ldrd r8, r9, [r3] - 800754c: f029 4300 bic.w r3, r9, #2147483648 @ 0x80000000 - 8007550: 9307 str r3, [sp, #28] - 8007552: f8cd 8018 str.w r8, [sp, #24] - 8007556: e9c4 8912 strd r8, r9, [r4, #72] @ 0x48 - 800755a: e9dd 0106 ldrd r0, r1, [sp, #24] - 800755e: 4b9c ldr r3, [pc, #624] @ (80077d0 <_printf_float+0x2c8>) - 8007560: f04f 32ff mov.w r2, #4294967295 - 8007564: f7f9 faea bl 8000b3c <__aeabi_dcmpun> - 8007568: bb70 cbnz r0, 80075c8 <_printf_float+0xc0> - 800756a: e9dd 0106 ldrd r0, r1, [sp, #24] - 800756e: 4b98 ldr r3, [pc, #608] @ (80077d0 <_printf_float+0x2c8>) - 8007570: f04f 32ff mov.w r2, #4294967295 - 8007574: f7f9 fac4 bl 8000b00 <__aeabi_dcmple> - 8007578: bb30 cbnz r0, 80075c8 <_printf_float+0xc0> - 800757a: 2200 movs r2, #0 - 800757c: 2300 movs r3, #0 - 800757e: 4640 mov r0, r8 - 8007580: 4649 mov r1, r9 - 8007582: f7f9 fab3 bl 8000aec <__aeabi_dcmplt> - 8007586: b110 cbz r0, 800758e <_printf_float+0x86> - 8007588: 232d movs r3, #45 @ 0x2d - 800758a: f884 3043 strb.w r3, [r4, #67] @ 0x43 - 800758e: 4a91 ldr r2, [pc, #580] @ (80077d4 <_printf_float+0x2cc>) - 8007590: 4b91 ldr r3, [pc, #580] @ (80077d8 <_printf_float+0x2d0>) - 8007592: f1ba 0f47 cmp.w sl, #71 @ 0x47 - 8007596: bf8c ite hi - 8007598: 4690 movhi r8, r2 - 800759a: 4698 movls r8, r3 - 800759c: 2303 movs r3, #3 - 800759e: 6123 str r3, [r4, #16] - 80075a0: f02b 0304 bic.w r3, fp, #4 - 80075a4: 6023 str r3, [r4, #0] - 80075a6: f04f 0900 mov.w r9, #0 - 80075aa: 9700 str r7, [sp, #0] - 80075ac: 4633 mov r3, r6 - 80075ae: aa0b add r2, sp, #44 @ 0x2c - 80075b0: 4621 mov r1, r4 - 80075b2: 4628 mov r0, r5 - 80075b4: f000 f9d2 bl 800795c <_printf_common> - 80075b8: 3001 adds r0, #1 - 80075ba: f040 808d bne.w 80076d8 <_printf_float+0x1d0> - 80075be: f04f 30ff mov.w r0, #4294967295 - 80075c2: b00d add sp, #52 @ 0x34 - 80075c4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 80075c8: 4642 mov r2, r8 - 80075ca: 464b mov r3, r9 - 80075cc: 4640 mov r0, r8 - 80075ce: 4649 mov r1, r9 - 80075d0: f7f9 fab4 bl 8000b3c <__aeabi_dcmpun> - 80075d4: b140 cbz r0, 80075e8 <_printf_float+0xe0> - 80075d6: 464b mov r3, r9 - 80075d8: 2b00 cmp r3, #0 - 80075da: bfbc itt lt - 80075dc: 232d movlt r3, #45 @ 0x2d - 80075de: f884 3043 strblt.w r3, [r4, #67] @ 0x43 - 80075e2: 4a7e ldr r2, [pc, #504] @ (80077dc <_printf_float+0x2d4>) - 80075e4: 4b7e ldr r3, [pc, #504] @ (80077e0 <_printf_float+0x2d8>) - 80075e6: e7d4 b.n 8007592 <_printf_float+0x8a> - 80075e8: 6863 ldr r3, [r4, #4] - 80075ea: f00a 02df and.w r2, sl, #223 @ 0xdf - 80075ee: 9206 str r2, [sp, #24] - 80075f0: 1c5a adds r2, r3, #1 - 80075f2: d13b bne.n 800766c <_printf_float+0x164> - 80075f4: 2306 movs r3, #6 - 80075f6: 6063 str r3, [r4, #4] - 80075f8: f44b 6280 orr.w r2, fp, #1024 @ 0x400 - 80075fc: 2300 movs r3, #0 - 80075fe: 6022 str r2, [r4, #0] - 8007600: 9303 str r3, [sp, #12] - 8007602: ab0a add r3, sp, #40 @ 0x28 - 8007604: e9cd a301 strd sl, r3, [sp, #4] - 8007608: ab09 add r3, sp, #36 @ 0x24 - 800760a: 9300 str r3, [sp, #0] - 800760c: 6861 ldr r1, [r4, #4] - 800760e: ec49 8b10 vmov d0, r8, r9 - 8007612: f10d 0323 add.w r3, sp, #35 @ 0x23 - 8007616: 4628 mov r0, r5 - 8007618: f7ff fed7 bl 80073ca <__cvt> - 800761c: 9b06 ldr r3, [sp, #24] - 800761e: 9909 ldr r1, [sp, #36] @ 0x24 - 8007620: 2b47 cmp r3, #71 @ 0x47 - 8007622: 4680 mov r8, r0 - 8007624: d129 bne.n 800767a <_printf_float+0x172> - 8007626: 1cc8 adds r0, r1, #3 - 8007628: db02 blt.n 8007630 <_printf_float+0x128> - 800762a: 6863 ldr r3, [r4, #4] - 800762c: 4299 cmp r1, r3 - 800762e: dd41 ble.n 80076b4 <_printf_float+0x1ac> - 8007630: f1aa 0a02 sub.w sl, sl, #2 - 8007634: fa5f fa8a uxtb.w sl, sl - 8007638: 3901 subs r1, #1 - 800763a: 4652 mov r2, sl - 800763c: f104 0050 add.w r0, r4, #80 @ 0x50 - 8007640: 9109 str r1, [sp, #36] @ 0x24 - 8007642: f7ff ff27 bl 8007494 <__exponent> - 8007646: 9a0a ldr r2, [sp, #40] @ 0x28 - 8007648: 1813 adds r3, r2, r0 - 800764a: 2a01 cmp r2, #1 - 800764c: 4681 mov r9, r0 - 800764e: 6123 str r3, [r4, #16] - 8007650: dc02 bgt.n 8007658 <_printf_float+0x150> - 8007652: 6822 ldr r2, [r4, #0] - 8007654: 07d2 lsls r2, r2, #31 - 8007656: d501 bpl.n 800765c <_printf_float+0x154> - 8007658: 3301 adds r3, #1 - 800765a: 6123 str r3, [r4, #16] - 800765c: f89d 3023 ldrb.w r3, [sp, #35] @ 0x23 - 8007660: 2b00 cmp r3, #0 - 8007662: d0a2 beq.n 80075aa <_printf_float+0xa2> - 8007664: 232d movs r3, #45 @ 0x2d - 8007666: f884 3043 strb.w r3, [r4, #67] @ 0x43 - 800766a: e79e b.n 80075aa <_printf_float+0xa2> - 800766c: 9a06 ldr r2, [sp, #24] - 800766e: 2a47 cmp r2, #71 @ 0x47 - 8007670: d1c2 bne.n 80075f8 <_printf_float+0xf0> - 8007672: 2b00 cmp r3, #0 - 8007674: d1c0 bne.n 80075f8 <_printf_float+0xf0> - 8007676: 2301 movs r3, #1 - 8007678: e7bd b.n 80075f6 <_printf_float+0xee> - 800767a: f1ba 0f65 cmp.w sl, #101 @ 0x65 - 800767e: d9db bls.n 8007638 <_printf_float+0x130> - 8007680: f1ba 0f66 cmp.w sl, #102 @ 0x66 - 8007684: d118 bne.n 80076b8 <_printf_float+0x1b0> - 8007686: 2900 cmp r1, #0 - 8007688: 6863 ldr r3, [r4, #4] - 800768a: dd0b ble.n 80076a4 <_printf_float+0x19c> - 800768c: 6121 str r1, [r4, #16] - 800768e: b913 cbnz r3, 8007696 <_printf_float+0x18e> - 8007690: 6822 ldr r2, [r4, #0] - 8007692: 07d0 lsls r0, r2, #31 - 8007694: d502 bpl.n 800769c <_printf_float+0x194> - 8007696: 3301 adds r3, #1 - 8007698: 440b add r3, r1 - 800769a: 6123 str r3, [r4, #16] - 800769c: 65a1 str r1, [r4, #88] @ 0x58 - 800769e: f04f 0900 mov.w r9, #0 - 80076a2: e7db b.n 800765c <_printf_float+0x154> - 80076a4: b913 cbnz r3, 80076ac <_printf_float+0x1a4> - 80076a6: 6822 ldr r2, [r4, #0] - 80076a8: 07d2 lsls r2, r2, #31 - 80076aa: d501 bpl.n 80076b0 <_printf_float+0x1a8> - 80076ac: 3302 adds r3, #2 - 80076ae: e7f4 b.n 800769a <_printf_float+0x192> - 80076b0: 2301 movs r3, #1 - 80076b2: e7f2 b.n 800769a <_printf_float+0x192> - 80076b4: f04f 0a67 mov.w sl, #103 @ 0x67 - 80076b8: 9b0a ldr r3, [sp, #40] @ 0x28 - 80076ba: 4299 cmp r1, r3 - 80076bc: db05 blt.n 80076ca <_printf_float+0x1c2> - 80076be: 6823 ldr r3, [r4, #0] - 80076c0: 6121 str r1, [r4, #16] - 80076c2: 07d8 lsls r0, r3, #31 - 80076c4: d5ea bpl.n 800769c <_printf_float+0x194> - 80076c6: 1c4b adds r3, r1, #1 - 80076c8: e7e7 b.n 800769a <_printf_float+0x192> - 80076ca: 2900 cmp r1, #0 - 80076cc: bfd4 ite le - 80076ce: f1c1 0202 rsble r2, r1, #2 - 80076d2: 2201 movgt r2, #1 - 80076d4: 4413 add r3, r2 - 80076d6: e7e0 b.n 800769a <_printf_float+0x192> - 80076d8: 6823 ldr r3, [r4, #0] - 80076da: 055a lsls r2, r3, #21 - 80076dc: d407 bmi.n 80076ee <_printf_float+0x1e6> - 80076de: 6923 ldr r3, [r4, #16] - 80076e0: 4642 mov r2, r8 - 80076e2: 4631 mov r1, r6 - 80076e4: 4628 mov r0, r5 - 80076e6: 47b8 blx r7 - 80076e8: 3001 adds r0, #1 - 80076ea: d12b bne.n 8007744 <_printf_float+0x23c> - 80076ec: e767 b.n 80075be <_printf_float+0xb6> - 80076ee: f1ba 0f65 cmp.w sl, #101 @ 0x65 - 80076f2: f240 80dd bls.w 80078b0 <_printf_float+0x3a8> - 80076f6: e9d4 0112 ldrd r0, r1, [r4, #72] @ 0x48 - 80076fa: 2200 movs r2, #0 - 80076fc: 2300 movs r3, #0 - 80076fe: f7f9 f9eb bl 8000ad8 <__aeabi_dcmpeq> - 8007702: 2800 cmp r0, #0 - 8007704: d033 beq.n 800776e <_printf_float+0x266> - 8007706: 4a37 ldr r2, [pc, #220] @ (80077e4 <_printf_float+0x2dc>) - 8007708: 2301 movs r3, #1 - 800770a: 4631 mov r1, r6 - 800770c: 4628 mov r0, r5 - 800770e: 47b8 blx r7 - 8007710: 3001 adds r0, #1 - 8007712: f43f af54 beq.w 80075be <_printf_float+0xb6> - 8007716: e9dd 3809 ldrd r3, r8, [sp, #36] @ 0x24 - 800771a: 4543 cmp r3, r8 - 800771c: db02 blt.n 8007724 <_printf_float+0x21c> - 800771e: 6823 ldr r3, [r4, #0] - 8007720: 07d8 lsls r0, r3, #31 - 8007722: d50f bpl.n 8007744 <_printf_float+0x23c> - 8007724: e9dd 2304 ldrd r2, r3, [sp, #16] - 8007728: 4631 mov r1, r6 - 800772a: 4628 mov r0, r5 - 800772c: 47b8 blx r7 - 800772e: 3001 adds r0, #1 - 8007730: f43f af45 beq.w 80075be <_printf_float+0xb6> - 8007734: f04f 0900 mov.w r9, #0 - 8007738: f108 38ff add.w r8, r8, #4294967295 - 800773c: f104 0a1a add.w sl, r4, #26 - 8007740: 45c8 cmp r8, r9 - 8007742: dc09 bgt.n 8007758 <_printf_float+0x250> - 8007744: 6823 ldr r3, [r4, #0] - 8007746: 079b lsls r3, r3, #30 - 8007748: f100 8103 bmi.w 8007952 <_printf_float+0x44a> - 800774c: 68e0 ldr r0, [r4, #12] - 800774e: 9b0b ldr r3, [sp, #44] @ 0x2c - 8007750: 4298 cmp r0, r3 - 8007752: bfb8 it lt - 8007754: 4618 movlt r0, r3 - 8007756: e734 b.n 80075c2 <_printf_float+0xba> - 8007758: 2301 movs r3, #1 - 800775a: 4652 mov r2, sl - 800775c: 4631 mov r1, r6 - 800775e: 4628 mov r0, r5 - 8007760: 47b8 blx r7 - 8007762: 3001 adds r0, #1 - 8007764: f43f af2b beq.w 80075be <_printf_float+0xb6> - 8007768: f109 0901 add.w r9, r9, #1 - 800776c: e7e8 b.n 8007740 <_printf_float+0x238> - 800776e: 9b09 ldr r3, [sp, #36] @ 0x24 - 8007770: 2b00 cmp r3, #0 - 8007772: dc39 bgt.n 80077e8 <_printf_float+0x2e0> - 8007774: 4a1b ldr r2, [pc, #108] @ (80077e4 <_printf_float+0x2dc>) - 8007776: 2301 movs r3, #1 - 8007778: 4631 mov r1, r6 - 800777a: 4628 mov r0, r5 - 800777c: 47b8 blx r7 - 800777e: 3001 adds r0, #1 - 8007780: f43f af1d beq.w 80075be <_printf_float+0xb6> - 8007784: e9dd 3909 ldrd r3, r9, [sp, #36] @ 0x24 - 8007788: ea59 0303 orrs.w r3, r9, r3 - 800778c: d102 bne.n 8007794 <_printf_float+0x28c> - 800778e: 6823 ldr r3, [r4, #0] - 8007790: 07d9 lsls r1, r3, #31 - 8007792: d5d7 bpl.n 8007744 <_printf_float+0x23c> - 8007794: e9dd 2304 ldrd r2, r3, [sp, #16] - 8007798: 4631 mov r1, r6 - 800779a: 4628 mov r0, r5 - 800779c: 47b8 blx r7 - 800779e: 3001 adds r0, #1 - 80077a0: f43f af0d beq.w 80075be <_printf_float+0xb6> - 80077a4: f04f 0a00 mov.w sl, #0 - 80077a8: f104 0b1a add.w fp, r4, #26 - 80077ac: 9b09 ldr r3, [sp, #36] @ 0x24 - 80077ae: 425b negs r3, r3 - 80077b0: 4553 cmp r3, sl - 80077b2: dc01 bgt.n 80077b8 <_printf_float+0x2b0> - 80077b4: 464b mov r3, r9 - 80077b6: e793 b.n 80076e0 <_printf_float+0x1d8> - 80077b8: 2301 movs r3, #1 - 80077ba: 465a mov r2, fp - 80077bc: 4631 mov r1, r6 - 80077be: 4628 mov r0, r5 - 80077c0: 47b8 blx r7 - 80077c2: 3001 adds r0, #1 - 80077c4: f43f aefb beq.w 80075be <_printf_float+0xb6> - 80077c8: f10a 0a01 add.w sl, sl, #1 - 80077cc: e7ee b.n 80077ac <_printf_float+0x2a4> - 80077ce: bf00 nop - 80077d0: 7fefffff .word 0x7fefffff - 80077d4: 0800b988 .word 0x0800b988 - 80077d8: 0800b984 .word 0x0800b984 - 80077dc: 0800b990 .word 0x0800b990 - 80077e0: 0800b98c .word 0x0800b98c - 80077e4: 0800b994 .word 0x0800b994 - 80077e8: 6da3 ldr r3, [r4, #88] @ 0x58 - 80077ea: f8dd a028 ldr.w sl, [sp, #40] @ 0x28 - 80077ee: 4553 cmp r3, sl - 80077f0: bfa8 it ge - 80077f2: 4653 movge r3, sl - 80077f4: 2b00 cmp r3, #0 - 80077f6: 4699 mov r9, r3 - 80077f8: dc36 bgt.n 8007868 <_printf_float+0x360> - 80077fa: f04f 0b00 mov.w fp, #0 - 80077fe: ea29 79e9 bic.w r9, r9, r9, asr #31 - 8007802: f104 021a add.w r2, r4, #26 - 8007806: 6da3 ldr r3, [r4, #88] @ 0x58 - 8007808: 9306 str r3, [sp, #24] - 800780a: eba3 0309 sub.w r3, r3, r9 - 800780e: 455b cmp r3, fp - 8007810: dc31 bgt.n 8007876 <_printf_float+0x36e> - 8007812: 9b09 ldr r3, [sp, #36] @ 0x24 - 8007814: 459a cmp sl, r3 - 8007816: dc3a bgt.n 800788e <_printf_float+0x386> - 8007818: 6823 ldr r3, [r4, #0] - 800781a: 07da lsls r2, r3, #31 - 800781c: d437 bmi.n 800788e <_printf_float+0x386> - 800781e: 9b09 ldr r3, [sp, #36] @ 0x24 - 8007820: ebaa 0903 sub.w r9, sl, r3 - 8007824: 9b06 ldr r3, [sp, #24] - 8007826: ebaa 0303 sub.w r3, sl, r3 - 800782a: 4599 cmp r9, r3 - 800782c: bfa8 it ge - 800782e: 4699 movge r9, r3 - 8007830: f1b9 0f00 cmp.w r9, #0 - 8007834: dc33 bgt.n 800789e <_printf_float+0x396> - 8007836: f04f 0800 mov.w r8, #0 - 800783a: ea29 79e9 bic.w r9, r9, r9, asr #31 - 800783e: f104 0b1a add.w fp, r4, #26 - 8007842: 9b09 ldr r3, [sp, #36] @ 0x24 - 8007844: ebaa 0303 sub.w r3, sl, r3 - 8007848: eba3 0309 sub.w r3, r3, r9 - 800784c: 4543 cmp r3, r8 - 800784e: f77f af79 ble.w 8007744 <_printf_float+0x23c> - 8007852: 2301 movs r3, #1 - 8007854: 465a mov r2, fp - 8007856: 4631 mov r1, r6 - 8007858: 4628 mov r0, r5 - 800785a: 47b8 blx r7 - 800785c: 3001 adds r0, #1 - 800785e: f43f aeae beq.w 80075be <_printf_float+0xb6> - 8007862: f108 0801 add.w r8, r8, #1 - 8007866: e7ec b.n 8007842 <_printf_float+0x33a> - 8007868: 4642 mov r2, r8 - 800786a: 4631 mov r1, r6 - 800786c: 4628 mov r0, r5 - 800786e: 47b8 blx r7 - 8007870: 3001 adds r0, #1 - 8007872: d1c2 bne.n 80077fa <_printf_float+0x2f2> - 8007874: e6a3 b.n 80075be <_printf_float+0xb6> - 8007876: 2301 movs r3, #1 - 8007878: 4631 mov r1, r6 - 800787a: 4628 mov r0, r5 - 800787c: 9206 str r2, [sp, #24] - 800787e: 47b8 blx r7 - 8007880: 3001 adds r0, #1 - 8007882: f43f ae9c beq.w 80075be <_printf_float+0xb6> - 8007886: 9a06 ldr r2, [sp, #24] - 8007888: f10b 0b01 add.w fp, fp, #1 - 800788c: e7bb b.n 8007806 <_printf_float+0x2fe> - 800788e: e9dd 2304 ldrd r2, r3, [sp, #16] - 8007892: 4631 mov r1, r6 - 8007894: 4628 mov r0, r5 - 8007896: 47b8 blx r7 - 8007898: 3001 adds r0, #1 - 800789a: d1c0 bne.n 800781e <_printf_float+0x316> - 800789c: e68f b.n 80075be <_printf_float+0xb6> - 800789e: 9a06 ldr r2, [sp, #24] - 80078a0: 464b mov r3, r9 - 80078a2: 4442 add r2, r8 - 80078a4: 4631 mov r1, r6 - 80078a6: 4628 mov r0, r5 - 80078a8: 47b8 blx r7 - 80078aa: 3001 adds r0, #1 - 80078ac: d1c3 bne.n 8007836 <_printf_float+0x32e> - 80078ae: e686 b.n 80075be <_printf_float+0xb6> - 80078b0: f8dd a028 ldr.w sl, [sp, #40] @ 0x28 - 80078b4: f1ba 0f01 cmp.w sl, #1 - 80078b8: dc01 bgt.n 80078be <_printf_float+0x3b6> - 80078ba: 07db lsls r3, r3, #31 - 80078bc: d536 bpl.n 800792c <_printf_float+0x424> - 80078be: 2301 movs r3, #1 - 80078c0: 4642 mov r2, r8 - 80078c2: 4631 mov r1, r6 - 80078c4: 4628 mov r0, r5 - 80078c6: 47b8 blx r7 - 80078c8: 3001 adds r0, #1 - 80078ca: f43f ae78 beq.w 80075be <_printf_float+0xb6> - 80078ce: e9dd 2304 ldrd r2, r3, [sp, #16] - 80078d2: 4631 mov r1, r6 - 80078d4: 4628 mov r0, r5 - 80078d6: 47b8 blx r7 - 80078d8: 3001 adds r0, #1 - 80078da: f43f ae70 beq.w 80075be <_printf_float+0xb6> - 80078de: e9d4 0112 ldrd r0, r1, [r4, #72] @ 0x48 - 80078e2: 2200 movs r2, #0 - 80078e4: 2300 movs r3, #0 - 80078e6: f10a 3aff add.w sl, sl, #4294967295 - 80078ea: f7f9 f8f5 bl 8000ad8 <__aeabi_dcmpeq> - 80078ee: b9c0 cbnz r0, 8007922 <_printf_float+0x41a> - 80078f0: 4653 mov r3, sl - 80078f2: f108 0201 add.w r2, r8, #1 - 80078f6: 4631 mov r1, r6 - 80078f8: 4628 mov r0, r5 - 80078fa: 47b8 blx r7 - 80078fc: 3001 adds r0, #1 - 80078fe: d10c bne.n 800791a <_printf_float+0x412> - 8007900: e65d b.n 80075be <_printf_float+0xb6> - 8007902: 2301 movs r3, #1 - 8007904: 465a mov r2, fp - 8007906: 4631 mov r1, r6 - 8007908: 4628 mov r0, r5 - 800790a: 47b8 blx r7 - 800790c: 3001 adds r0, #1 - 800790e: f43f ae56 beq.w 80075be <_printf_float+0xb6> - 8007912: f108 0801 add.w r8, r8, #1 - 8007916: 45d0 cmp r8, sl - 8007918: dbf3 blt.n 8007902 <_printf_float+0x3fa> - 800791a: 464b mov r3, r9 - 800791c: f104 0250 add.w r2, r4, #80 @ 0x50 - 8007920: e6df b.n 80076e2 <_printf_float+0x1da> - 8007922: f04f 0800 mov.w r8, #0 - 8007926: f104 0b1a add.w fp, r4, #26 - 800792a: e7f4 b.n 8007916 <_printf_float+0x40e> - 800792c: 2301 movs r3, #1 - 800792e: 4642 mov r2, r8 - 8007930: e7e1 b.n 80078f6 <_printf_float+0x3ee> - 8007932: 2301 movs r3, #1 - 8007934: 464a mov r2, r9 - 8007936: 4631 mov r1, r6 - 8007938: 4628 mov r0, r5 - 800793a: 47b8 blx r7 - 800793c: 3001 adds r0, #1 - 800793e: f43f ae3e beq.w 80075be <_printf_float+0xb6> - 8007942: f108 0801 add.w r8, r8, #1 - 8007946: 68e3 ldr r3, [r4, #12] - 8007948: 990b ldr r1, [sp, #44] @ 0x2c - 800794a: 1a5b subs r3, r3, r1 - 800794c: 4543 cmp r3, r8 - 800794e: dcf0 bgt.n 8007932 <_printf_float+0x42a> - 8007950: e6fc b.n 800774c <_printf_float+0x244> - 8007952: f04f 0800 mov.w r8, #0 - 8007956: f104 0919 add.w r9, r4, #25 - 800795a: e7f4 b.n 8007946 <_printf_float+0x43e> + /* Control if the RX fifo is empty */ + if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, Timeout, Tickstart) != HAL_OK) + 8002cfa: 687b ldr r3, [r7, #4] + 8002cfc: 9300 str r3, [sp, #0] + 8002cfe: 68bb ldr r3, [r7, #8] + 8002d00: 2200 movs r2, #0 + 8002d02: f44f 61c0 mov.w r1, #1536 @ 0x600 + 8002d06: 68f8 ldr r0, [r7, #12] + 8002d08: f7ff ff34 bl 8002b74 + 8002d0c: 4603 mov r3, r0 + 8002d0e: 2b00 cmp r3, #0 + 8002d10: d007 beq.n 8002d22 + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + 8002d12: 68fb ldr r3, [r7, #12] + 8002d14: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002d16: f043 0220 orr.w r2, r3, #32 + 8002d1a: 68fb ldr r3, [r7, #12] + 8002d1c: 661a str r2, [r3, #96] @ 0x60 + return HAL_TIMEOUT; + 8002d1e: 2303 movs r3, #3 + 8002d20: e000 b.n 8002d24 + } -0800795c <_printf_common>: - 800795c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8007960: 4616 mov r6, r2 - 8007962: 4698 mov r8, r3 - 8007964: 688a ldr r2, [r1, #8] - 8007966: 690b ldr r3, [r1, #16] - 8007968: f8dd 9020 ldr.w r9, [sp, #32] - 800796c: 4293 cmp r3, r2 - 800796e: bfb8 it lt - 8007970: 4613 movlt r3, r2 - 8007972: 6033 str r3, [r6, #0] - 8007974: f891 2043 ldrb.w r2, [r1, #67] @ 0x43 - 8007978: 4607 mov r7, r0 - 800797a: 460c mov r4, r1 - 800797c: b10a cbz r2, 8007982 <_printf_common+0x26> - 800797e: 3301 adds r3, #1 - 8007980: 6033 str r3, [r6, #0] - 8007982: 6823 ldr r3, [r4, #0] - 8007984: 0699 lsls r1, r3, #26 - 8007986: bf42 ittt mi - 8007988: 6833 ldrmi r3, [r6, #0] - 800798a: 3302 addmi r3, #2 - 800798c: 6033 strmi r3, [r6, #0] - 800798e: 6825 ldr r5, [r4, #0] - 8007990: f015 0506 ands.w r5, r5, #6 - 8007994: d106 bne.n 80079a4 <_printf_common+0x48> - 8007996: f104 0a19 add.w sl, r4, #25 - 800799a: 68e3 ldr r3, [r4, #12] - 800799c: 6832 ldr r2, [r6, #0] - 800799e: 1a9b subs r3, r3, r2 - 80079a0: 42ab cmp r3, r5 - 80079a2: dc26 bgt.n 80079f2 <_printf_common+0x96> - 80079a4: f894 3043 ldrb.w r3, [r4, #67] @ 0x43 - 80079a8: 6822 ldr r2, [r4, #0] - 80079aa: 3b00 subs r3, #0 - 80079ac: bf18 it ne - 80079ae: 2301 movne r3, #1 - 80079b0: 0692 lsls r2, r2, #26 - 80079b2: d42b bmi.n 8007a0c <_printf_common+0xb0> - 80079b4: f104 0243 add.w r2, r4, #67 @ 0x43 - 80079b8: 4641 mov r1, r8 - 80079ba: 4638 mov r0, r7 - 80079bc: 47c8 blx r9 - 80079be: 3001 adds r0, #1 - 80079c0: d01e beq.n 8007a00 <_printf_common+0xa4> - 80079c2: 6823 ldr r3, [r4, #0] - 80079c4: 6922 ldr r2, [r4, #16] - 80079c6: f003 0306 and.w r3, r3, #6 - 80079ca: 2b04 cmp r3, #4 - 80079cc: bf02 ittt eq - 80079ce: 68e5 ldreq r5, [r4, #12] - 80079d0: 6833 ldreq r3, [r6, #0] - 80079d2: 1aed subeq r5, r5, r3 - 80079d4: 68a3 ldr r3, [r4, #8] - 80079d6: bf0c ite eq - 80079d8: ea25 75e5 biceq.w r5, r5, r5, asr #31 - 80079dc: 2500 movne r5, #0 - 80079de: 4293 cmp r3, r2 - 80079e0: bfc4 itt gt - 80079e2: 1a9b subgt r3, r3, r2 - 80079e4: 18ed addgt r5, r5, r3 - 80079e6: 2600 movs r6, #0 - 80079e8: 341a adds r4, #26 - 80079ea: 42b5 cmp r5, r6 - 80079ec: d11a bne.n 8007a24 <_printf_common+0xc8> - 80079ee: 2000 movs r0, #0 - 80079f0: e008 b.n 8007a04 <_printf_common+0xa8> - 80079f2: 2301 movs r3, #1 - 80079f4: 4652 mov r2, sl - 80079f6: 4641 mov r1, r8 - 80079f8: 4638 mov r0, r7 - 80079fa: 47c8 blx r9 - 80079fc: 3001 adds r0, #1 - 80079fe: d103 bne.n 8007a08 <_printf_common+0xac> - 8007a00: f04f 30ff mov.w r0, #4294967295 - 8007a04: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8007a08: 3501 adds r5, #1 - 8007a0a: e7c6 b.n 800799a <_printf_common+0x3e> - 8007a0c: 18e1 adds r1, r4, r3 - 8007a0e: 1c5a adds r2, r3, #1 - 8007a10: 2030 movs r0, #48 @ 0x30 - 8007a12: f881 0043 strb.w r0, [r1, #67] @ 0x43 - 8007a16: 4422 add r2, r4 - 8007a18: f894 1045 ldrb.w r1, [r4, #69] @ 0x45 - 8007a1c: f882 1043 strb.w r1, [r2, #67] @ 0x43 - 8007a20: 3302 adds r3, #2 - 8007a22: e7c7 b.n 80079b4 <_printf_common+0x58> - 8007a24: 2301 movs r3, #1 - 8007a26: 4622 mov r2, r4 - 8007a28: 4641 mov r1, r8 - 8007a2a: 4638 mov r0, r7 - 8007a2c: 47c8 blx r9 - 8007a2e: 3001 adds r0, #1 - 8007a30: d0e6 beq.n 8007a00 <_printf_common+0xa4> - 8007a32: 3601 adds r6, #1 - 8007a34: e7d9 b.n 80079ea <_printf_common+0x8e> + return HAL_OK; + 8002d22: 2300 movs r3, #0 +} + 8002d24: 4618 mov r0, r3 + 8002d26: 3710 adds r7, #16 + 8002d28: 46bd mov sp, r7 + 8002d2a: bd80 pop {r7, pc} + +08002d2c <__cvt>: + 8002d2c: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} + 8002d30: ec57 6b10 vmov r6, r7, d0 + 8002d34: 2f00 cmp r7, #0 + 8002d36: 460c mov r4, r1 + 8002d38: 4619 mov r1, r3 + 8002d3a: 463b mov r3, r7 + 8002d3c: bfbb ittet lt + 8002d3e: f107 4300 addlt.w r3, r7, #2147483648 @ 0x80000000 + 8002d42: 461f movlt r7, r3 + 8002d44: 2300 movge r3, #0 + 8002d46: 232d movlt r3, #45 @ 0x2d + 8002d48: 700b strb r3, [r1, #0] + 8002d4a: 9b0d ldr r3, [sp, #52] @ 0x34 + 8002d4c: f8dd a030 ldr.w sl, [sp, #48] @ 0x30 + 8002d50: 4691 mov r9, r2 + 8002d52: f023 0820 bic.w r8, r3, #32 + 8002d56: bfbc itt lt + 8002d58: 4632 movlt r2, r6 + 8002d5a: 4616 movlt r6, r2 + 8002d5c: f1b8 0f46 cmp.w r8, #70 @ 0x46 + 8002d60: d005 beq.n 8002d6e <__cvt+0x42> + 8002d62: f1b8 0f45 cmp.w r8, #69 @ 0x45 + 8002d66: d100 bne.n 8002d6a <__cvt+0x3e> + 8002d68: 3401 adds r4, #1 + 8002d6a: 2102 movs r1, #2 + 8002d6c: e000 b.n 8002d70 <__cvt+0x44> + 8002d6e: 2103 movs r1, #3 + 8002d70: ab03 add r3, sp, #12 + 8002d72: 9301 str r3, [sp, #4] + 8002d74: ab02 add r3, sp, #8 + 8002d76: 9300 str r3, [sp, #0] + 8002d78: ec47 6b10 vmov d0, r6, r7 + 8002d7c: 4653 mov r3, sl + 8002d7e: 4622 mov r2, r4 + 8002d80: f000 fe3a bl 80039f8 <_dtoa_r> + 8002d84: f1b8 0f47 cmp.w r8, #71 @ 0x47 + 8002d88: 4605 mov r5, r0 + 8002d8a: d119 bne.n 8002dc0 <__cvt+0x94> + 8002d8c: f019 0f01 tst.w r9, #1 + 8002d90: d00e beq.n 8002db0 <__cvt+0x84> + 8002d92: eb00 0904 add.w r9, r0, r4 + 8002d96: 2200 movs r2, #0 + 8002d98: 2300 movs r3, #0 + 8002d9a: 4630 mov r0, r6 + 8002d9c: 4639 mov r1, r7 + 8002d9e: f7fd fe9b bl 8000ad8 <__aeabi_dcmpeq> + 8002da2: b108 cbz r0, 8002da8 <__cvt+0x7c> + 8002da4: f8cd 900c str.w r9, [sp, #12] + 8002da8: 2230 movs r2, #48 @ 0x30 + 8002daa: 9b03 ldr r3, [sp, #12] + 8002dac: 454b cmp r3, r9 + 8002dae: d31e bcc.n 8002dee <__cvt+0xc2> + 8002db0: 9b03 ldr r3, [sp, #12] + 8002db2: 9a0e ldr r2, [sp, #56] @ 0x38 + 8002db4: 1b5b subs r3, r3, r5 + 8002db6: 4628 mov r0, r5 + 8002db8: 6013 str r3, [r2, #0] + 8002dba: b004 add sp, #16 + 8002dbc: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8002dc0: f1b8 0f46 cmp.w r8, #70 @ 0x46 + 8002dc4: eb00 0904 add.w r9, r0, r4 + 8002dc8: d1e5 bne.n 8002d96 <__cvt+0x6a> + 8002dca: 7803 ldrb r3, [r0, #0] + 8002dcc: 2b30 cmp r3, #48 @ 0x30 + 8002dce: d10a bne.n 8002de6 <__cvt+0xba> + 8002dd0: 2200 movs r2, #0 + 8002dd2: 2300 movs r3, #0 + 8002dd4: 4630 mov r0, r6 + 8002dd6: 4639 mov r1, r7 + 8002dd8: f7fd fe7e bl 8000ad8 <__aeabi_dcmpeq> + 8002ddc: b918 cbnz r0, 8002de6 <__cvt+0xba> + 8002dde: f1c4 0401 rsb r4, r4, #1 + 8002de2: f8ca 4000 str.w r4, [sl] + 8002de6: f8da 3000 ldr.w r3, [sl] + 8002dea: 4499 add r9, r3 + 8002dec: e7d3 b.n 8002d96 <__cvt+0x6a> + 8002dee: 1c59 adds r1, r3, #1 + 8002df0: 9103 str r1, [sp, #12] + 8002df2: 701a strb r2, [r3, #0] + 8002df4: e7d9 b.n 8002daa <__cvt+0x7e> + +08002df6 <__exponent>: + 8002df6: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} + 8002df8: 2900 cmp r1, #0 + 8002dfa: bfba itte lt + 8002dfc: 4249 neglt r1, r1 + 8002dfe: 232d movlt r3, #45 @ 0x2d + 8002e00: 232b movge r3, #43 @ 0x2b + 8002e02: 2909 cmp r1, #9 + 8002e04: 7002 strb r2, [r0, #0] + 8002e06: 7043 strb r3, [r0, #1] + 8002e08: dd29 ble.n 8002e5e <__exponent+0x68> + 8002e0a: f10d 0307 add.w r3, sp, #7 + 8002e0e: 461d mov r5, r3 + 8002e10: 270a movs r7, #10 + 8002e12: 461a mov r2, r3 + 8002e14: fbb1 f6f7 udiv r6, r1, r7 + 8002e18: fb07 1416 mls r4, r7, r6, r1 + 8002e1c: 3430 adds r4, #48 @ 0x30 + 8002e1e: f802 4c01 strb.w r4, [r2, #-1] + 8002e22: 460c mov r4, r1 + 8002e24: 2c63 cmp r4, #99 @ 0x63 + 8002e26: f103 33ff add.w r3, r3, #4294967295 + 8002e2a: 4631 mov r1, r6 + 8002e2c: dcf1 bgt.n 8002e12 <__exponent+0x1c> + 8002e2e: 3130 adds r1, #48 @ 0x30 + 8002e30: 1e94 subs r4, r2, #2 + 8002e32: f803 1c01 strb.w r1, [r3, #-1] + 8002e36: 1c41 adds r1, r0, #1 + 8002e38: 4623 mov r3, r4 + 8002e3a: 42ab cmp r3, r5 + 8002e3c: d30a bcc.n 8002e54 <__exponent+0x5e> + 8002e3e: f10d 0309 add.w r3, sp, #9 + 8002e42: 1a9b subs r3, r3, r2 + 8002e44: 42ac cmp r4, r5 + 8002e46: bf88 it hi + 8002e48: 2300 movhi r3, #0 + 8002e4a: 3302 adds r3, #2 + 8002e4c: 4403 add r3, r0 + 8002e4e: 1a18 subs r0, r3, r0 + 8002e50: b003 add sp, #12 + 8002e52: bdf0 pop {r4, r5, r6, r7, pc} + 8002e54: f813 6b01 ldrb.w r6, [r3], #1 + 8002e58: f801 6f01 strb.w r6, [r1, #1]! + 8002e5c: e7ed b.n 8002e3a <__exponent+0x44> + 8002e5e: 2330 movs r3, #48 @ 0x30 + 8002e60: 3130 adds r1, #48 @ 0x30 + 8002e62: 7083 strb r3, [r0, #2] + 8002e64: 70c1 strb r1, [r0, #3] + 8002e66: 1d03 adds r3, r0, #4 + 8002e68: e7f1 b.n 8002e4e <__exponent+0x58> ... -08007a38 <_printf_i>: - 8007a38: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - 8007a3c: 7e0f ldrb r7, [r1, #24] - 8007a3e: 9e0c ldr r6, [sp, #48] @ 0x30 - 8007a40: 2f78 cmp r7, #120 @ 0x78 - 8007a42: 4691 mov r9, r2 - 8007a44: 4680 mov r8, r0 - 8007a46: 460c mov r4, r1 - 8007a48: 469a mov sl, r3 - 8007a4a: f101 0243 add.w r2, r1, #67 @ 0x43 - 8007a4e: d807 bhi.n 8007a60 <_printf_i+0x28> - 8007a50: 2f62 cmp r7, #98 @ 0x62 - 8007a52: d80a bhi.n 8007a6a <_printf_i+0x32> - 8007a54: 2f00 cmp r7, #0 - 8007a56: f000 80d1 beq.w 8007bfc <_printf_i+0x1c4> - 8007a5a: 2f58 cmp r7, #88 @ 0x58 - 8007a5c: f000 80b8 beq.w 8007bd0 <_printf_i+0x198> - 8007a60: f104 0642 add.w r6, r4, #66 @ 0x42 - 8007a64: f884 7042 strb.w r7, [r4, #66] @ 0x42 - 8007a68: e03a b.n 8007ae0 <_printf_i+0xa8> - 8007a6a: f1a7 0363 sub.w r3, r7, #99 @ 0x63 - 8007a6e: 2b15 cmp r3, #21 - 8007a70: d8f6 bhi.n 8007a60 <_printf_i+0x28> - 8007a72: a101 add r1, pc, #4 @ (adr r1, 8007a78 <_printf_i+0x40>) - 8007a74: f851 f023 ldr.w pc, [r1, r3, lsl #2] - 8007a78: 08007ad1 .word 0x08007ad1 - 8007a7c: 08007ae5 .word 0x08007ae5 - 8007a80: 08007a61 .word 0x08007a61 - 8007a84: 08007a61 .word 0x08007a61 - 8007a88: 08007a61 .word 0x08007a61 - 8007a8c: 08007a61 .word 0x08007a61 - 8007a90: 08007ae5 .word 0x08007ae5 - 8007a94: 08007a61 .word 0x08007a61 - 8007a98: 08007a61 .word 0x08007a61 - 8007a9c: 08007a61 .word 0x08007a61 - 8007aa0: 08007a61 .word 0x08007a61 - 8007aa4: 08007be3 .word 0x08007be3 - 8007aa8: 08007b0f .word 0x08007b0f - 8007aac: 08007b9d .word 0x08007b9d - 8007ab0: 08007a61 .word 0x08007a61 - 8007ab4: 08007a61 .word 0x08007a61 - 8007ab8: 08007c05 .word 0x08007c05 - 8007abc: 08007a61 .word 0x08007a61 - 8007ac0: 08007b0f .word 0x08007b0f - 8007ac4: 08007a61 .word 0x08007a61 - 8007ac8: 08007a61 .word 0x08007a61 - 8007acc: 08007ba5 .word 0x08007ba5 - 8007ad0: 6833 ldr r3, [r6, #0] - 8007ad2: 1d1a adds r2, r3, #4 - 8007ad4: 681b ldr r3, [r3, #0] - 8007ad6: 6032 str r2, [r6, #0] - 8007ad8: f104 0642 add.w r6, r4, #66 @ 0x42 - 8007adc: f884 3042 strb.w r3, [r4, #66] @ 0x42 - 8007ae0: 2301 movs r3, #1 - 8007ae2: e09c b.n 8007c1e <_printf_i+0x1e6> - 8007ae4: 6833 ldr r3, [r6, #0] - 8007ae6: 6820 ldr r0, [r4, #0] - 8007ae8: 1d19 adds r1, r3, #4 - 8007aea: 6031 str r1, [r6, #0] - 8007aec: 0606 lsls r6, r0, #24 - 8007aee: d501 bpl.n 8007af4 <_printf_i+0xbc> - 8007af0: 681d ldr r5, [r3, #0] - 8007af2: e003 b.n 8007afc <_printf_i+0xc4> - 8007af4: 0645 lsls r5, r0, #25 - 8007af6: d5fb bpl.n 8007af0 <_printf_i+0xb8> - 8007af8: f9b3 5000 ldrsh.w r5, [r3] - 8007afc: 2d00 cmp r5, #0 - 8007afe: da03 bge.n 8007b08 <_printf_i+0xd0> - 8007b00: 232d movs r3, #45 @ 0x2d - 8007b02: 426d negs r5, r5 - 8007b04: f884 3043 strb.w r3, [r4, #67] @ 0x43 - 8007b08: 4858 ldr r0, [pc, #352] @ (8007c6c <_printf_i+0x234>) - 8007b0a: 230a movs r3, #10 - 8007b0c: e011 b.n 8007b32 <_printf_i+0xfa> - 8007b0e: 6821 ldr r1, [r4, #0] - 8007b10: 6833 ldr r3, [r6, #0] - 8007b12: 0608 lsls r0, r1, #24 - 8007b14: f853 5b04 ldr.w r5, [r3], #4 - 8007b18: d402 bmi.n 8007b20 <_printf_i+0xe8> - 8007b1a: 0649 lsls r1, r1, #25 - 8007b1c: bf48 it mi - 8007b1e: b2ad uxthmi r5, r5 - 8007b20: 2f6f cmp r7, #111 @ 0x6f - 8007b22: 4852 ldr r0, [pc, #328] @ (8007c6c <_printf_i+0x234>) - 8007b24: 6033 str r3, [r6, #0] - 8007b26: bf14 ite ne - 8007b28: 230a movne r3, #10 - 8007b2a: 2308 moveq r3, #8 - 8007b2c: 2100 movs r1, #0 - 8007b2e: f884 1043 strb.w r1, [r4, #67] @ 0x43 - 8007b32: 6866 ldr r6, [r4, #4] - 8007b34: 60a6 str r6, [r4, #8] - 8007b36: 2e00 cmp r6, #0 - 8007b38: db05 blt.n 8007b46 <_printf_i+0x10e> - 8007b3a: 6821 ldr r1, [r4, #0] - 8007b3c: 432e orrs r6, r5 - 8007b3e: f021 0104 bic.w r1, r1, #4 - 8007b42: 6021 str r1, [r4, #0] - 8007b44: d04b beq.n 8007bde <_printf_i+0x1a6> - 8007b46: 4616 mov r6, r2 - 8007b48: fbb5 f1f3 udiv r1, r5, r3 - 8007b4c: fb03 5711 mls r7, r3, r1, r5 - 8007b50: 5dc7 ldrb r7, [r0, r7] - 8007b52: f806 7d01 strb.w r7, [r6, #-1]! - 8007b56: 462f mov r7, r5 - 8007b58: 42bb cmp r3, r7 - 8007b5a: 460d mov r5, r1 - 8007b5c: d9f4 bls.n 8007b48 <_printf_i+0x110> - 8007b5e: 2b08 cmp r3, #8 - 8007b60: d10b bne.n 8007b7a <_printf_i+0x142> - 8007b62: 6823 ldr r3, [r4, #0] - 8007b64: 07df lsls r7, r3, #31 - 8007b66: d508 bpl.n 8007b7a <_printf_i+0x142> - 8007b68: 6923 ldr r3, [r4, #16] - 8007b6a: 6861 ldr r1, [r4, #4] - 8007b6c: 4299 cmp r1, r3 - 8007b6e: bfde ittt le - 8007b70: 2330 movle r3, #48 @ 0x30 - 8007b72: f806 3c01 strble.w r3, [r6, #-1] - 8007b76: f106 36ff addle.w r6, r6, #4294967295 - 8007b7a: 1b92 subs r2, r2, r6 - 8007b7c: 6122 str r2, [r4, #16] - 8007b7e: f8cd a000 str.w sl, [sp] - 8007b82: 464b mov r3, r9 - 8007b84: aa03 add r2, sp, #12 - 8007b86: 4621 mov r1, r4 - 8007b88: 4640 mov r0, r8 - 8007b8a: f7ff fee7 bl 800795c <_printf_common> - 8007b8e: 3001 adds r0, #1 - 8007b90: d14a bne.n 8007c28 <_printf_i+0x1f0> - 8007b92: f04f 30ff mov.w r0, #4294967295 - 8007b96: b004 add sp, #16 - 8007b98: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8007b9c: 6823 ldr r3, [r4, #0] - 8007b9e: f043 0320 orr.w r3, r3, #32 - 8007ba2: 6023 str r3, [r4, #0] - 8007ba4: 4832 ldr r0, [pc, #200] @ (8007c70 <_printf_i+0x238>) - 8007ba6: 2778 movs r7, #120 @ 0x78 - 8007ba8: f884 7045 strb.w r7, [r4, #69] @ 0x45 - 8007bac: 6823 ldr r3, [r4, #0] - 8007bae: 6831 ldr r1, [r6, #0] - 8007bb0: 061f lsls r7, r3, #24 - 8007bb2: f851 5b04 ldr.w r5, [r1], #4 - 8007bb6: d402 bmi.n 8007bbe <_printf_i+0x186> - 8007bb8: 065f lsls r7, r3, #25 - 8007bba: bf48 it mi - 8007bbc: b2ad uxthmi r5, r5 - 8007bbe: 6031 str r1, [r6, #0] - 8007bc0: 07d9 lsls r1, r3, #31 - 8007bc2: bf44 itt mi - 8007bc4: f043 0320 orrmi.w r3, r3, #32 - 8007bc8: 6023 strmi r3, [r4, #0] - 8007bca: b11d cbz r5, 8007bd4 <_printf_i+0x19c> - 8007bcc: 2310 movs r3, #16 - 8007bce: e7ad b.n 8007b2c <_printf_i+0xf4> - 8007bd0: 4826 ldr r0, [pc, #152] @ (8007c6c <_printf_i+0x234>) - 8007bd2: e7e9 b.n 8007ba8 <_printf_i+0x170> - 8007bd4: 6823 ldr r3, [r4, #0] - 8007bd6: f023 0320 bic.w r3, r3, #32 - 8007bda: 6023 str r3, [r4, #0] - 8007bdc: e7f6 b.n 8007bcc <_printf_i+0x194> - 8007bde: 4616 mov r6, r2 - 8007be0: e7bd b.n 8007b5e <_printf_i+0x126> - 8007be2: 6833 ldr r3, [r6, #0] - 8007be4: 6825 ldr r5, [r4, #0] - 8007be6: 6961 ldr r1, [r4, #20] - 8007be8: 1d18 adds r0, r3, #4 - 8007bea: 6030 str r0, [r6, #0] - 8007bec: 062e lsls r6, r5, #24 - 8007bee: 681b ldr r3, [r3, #0] - 8007bf0: d501 bpl.n 8007bf6 <_printf_i+0x1be> - 8007bf2: 6019 str r1, [r3, #0] - 8007bf4: e002 b.n 8007bfc <_printf_i+0x1c4> - 8007bf6: 0668 lsls r0, r5, #25 - 8007bf8: d5fb bpl.n 8007bf2 <_printf_i+0x1ba> - 8007bfa: 8019 strh r1, [r3, #0] - 8007bfc: 2300 movs r3, #0 - 8007bfe: 6123 str r3, [r4, #16] - 8007c00: 4616 mov r6, r2 - 8007c02: e7bc b.n 8007b7e <_printf_i+0x146> - 8007c04: 6833 ldr r3, [r6, #0] - 8007c06: 1d1a adds r2, r3, #4 - 8007c08: 6032 str r2, [r6, #0] - 8007c0a: 681e ldr r6, [r3, #0] - 8007c0c: 6862 ldr r2, [r4, #4] - 8007c0e: 2100 movs r1, #0 - 8007c10: 4630 mov r0, r6 - 8007c12: f7f8 fae5 bl 80001e0 - 8007c16: b108 cbz r0, 8007c1c <_printf_i+0x1e4> - 8007c18: 1b80 subs r0, r0, r6 - 8007c1a: 6060 str r0, [r4, #4] - 8007c1c: 6863 ldr r3, [r4, #4] - 8007c1e: 6123 str r3, [r4, #16] - 8007c20: 2300 movs r3, #0 - 8007c22: f884 3043 strb.w r3, [r4, #67] @ 0x43 - 8007c26: e7aa b.n 8007b7e <_printf_i+0x146> - 8007c28: 6923 ldr r3, [r4, #16] - 8007c2a: 4632 mov r2, r6 - 8007c2c: 4649 mov r1, r9 - 8007c2e: 4640 mov r0, r8 - 8007c30: 47d0 blx sl - 8007c32: 3001 adds r0, #1 - 8007c34: d0ad beq.n 8007b92 <_printf_i+0x15a> - 8007c36: 6823 ldr r3, [r4, #0] - 8007c38: 079b lsls r3, r3, #30 - 8007c3a: d413 bmi.n 8007c64 <_printf_i+0x22c> - 8007c3c: 68e0 ldr r0, [r4, #12] - 8007c3e: 9b03 ldr r3, [sp, #12] - 8007c40: 4298 cmp r0, r3 - 8007c42: bfb8 it lt - 8007c44: 4618 movlt r0, r3 - 8007c46: e7a6 b.n 8007b96 <_printf_i+0x15e> - 8007c48: 2301 movs r3, #1 - 8007c4a: 4632 mov r2, r6 - 8007c4c: 4649 mov r1, r9 - 8007c4e: 4640 mov r0, r8 - 8007c50: 47d0 blx sl - 8007c52: 3001 adds r0, #1 - 8007c54: d09d beq.n 8007b92 <_printf_i+0x15a> - 8007c56: 3501 adds r5, #1 - 8007c58: 68e3 ldr r3, [r4, #12] - 8007c5a: 9903 ldr r1, [sp, #12] - 8007c5c: 1a5b subs r3, r3, r1 - 8007c5e: 42ab cmp r3, r5 - 8007c60: dcf2 bgt.n 8007c48 <_printf_i+0x210> - 8007c62: e7eb b.n 8007c3c <_printf_i+0x204> - 8007c64: 2500 movs r5, #0 - 8007c66: f104 0619 add.w r6, r4, #25 - 8007c6a: e7f5 b.n 8007c58 <_printf_i+0x220> - 8007c6c: 0800b996 .word 0x0800b996 - 8007c70: 0800b9a7 .word 0x0800b9a7 +08002e6c <_printf_float>: + 8002e6c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 8002e70: b08d sub sp, #52 @ 0x34 + 8002e72: 460c mov r4, r1 + 8002e74: f8dd 8058 ldr.w r8, [sp, #88] @ 0x58 + 8002e78: 4616 mov r6, r2 + 8002e7a: 461f mov r7, r3 + 8002e7c: 4605 mov r5, r0 + 8002e7e: f000 fcb9 bl 80037f4 <_localeconv_r> + 8002e82: 6803 ldr r3, [r0, #0] + 8002e84: 9304 str r3, [sp, #16] + 8002e86: 4618 mov r0, r3 + 8002e88: f7fd f9fa bl 8000280 + 8002e8c: 2300 movs r3, #0 + 8002e8e: 930a str r3, [sp, #40] @ 0x28 + 8002e90: f8d8 3000 ldr.w r3, [r8] + 8002e94: 9005 str r0, [sp, #20] + 8002e96: 3307 adds r3, #7 + 8002e98: f023 0307 bic.w r3, r3, #7 + 8002e9c: f103 0208 add.w r2, r3, #8 + 8002ea0: f894 a018 ldrb.w sl, [r4, #24] + 8002ea4: f8d4 b000 ldr.w fp, [r4] + 8002ea8: f8c8 2000 str.w r2, [r8] + 8002eac: e9d3 8900 ldrd r8, r9, [r3] + 8002eb0: f029 4300 bic.w r3, r9, #2147483648 @ 0x80000000 + 8002eb4: 9307 str r3, [sp, #28] + 8002eb6: f8cd 8018 str.w r8, [sp, #24] + 8002eba: e9c4 8912 strd r8, r9, [r4, #72] @ 0x48 + 8002ebe: e9dd 0106 ldrd r0, r1, [sp, #24] + 8002ec2: 4b9c ldr r3, [pc, #624] @ (8003134 <_printf_float+0x2c8>) + 8002ec4: f04f 32ff mov.w r2, #4294967295 + 8002ec8: f7fd fe38 bl 8000b3c <__aeabi_dcmpun> + 8002ecc: bb70 cbnz r0, 8002f2c <_printf_float+0xc0> + 8002ece: e9dd 0106 ldrd r0, r1, [sp, #24] + 8002ed2: 4b98 ldr r3, [pc, #608] @ (8003134 <_printf_float+0x2c8>) + 8002ed4: f04f 32ff mov.w r2, #4294967295 + 8002ed8: f7fd fe12 bl 8000b00 <__aeabi_dcmple> + 8002edc: bb30 cbnz r0, 8002f2c <_printf_float+0xc0> + 8002ede: 2200 movs r2, #0 + 8002ee0: 2300 movs r3, #0 + 8002ee2: 4640 mov r0, r8 + 8002ee4: 4649 mov r1, r9 + 8002ee6: f7fd fe01 bl 8000aec <__aeabi_dcmplt> + 8002eea: b110 cbz r0, 8002ef2 <_printf_float+0x86> + 8002eec: 232d movs r3, #45 @ 0x2d + 8002eee: f884 3043 strb.w r3, [r4, #67] @ 0x43 + 8002ef2: 4a91 ldr r2, [pc, #580] @ (8003138 <_printf_float+0x2cc>) + 8002ef4: 4b91 ldr r3, [pc, #580] @ (800313c <_printf_float+0x2d0>) + 8002ef6: f1ba 0f47 cmp.w sl, #71 @ 0x47 + 8002efa: bf8c ite hi + 8002efc: 4690 movhi r8, r2 + 8002efe: 4698 movls r8, r3 + 8002f00: 2303 movs r3, #3 + 8002f02: 6123 str r3, [r4, #16] + 8002f04: f02b 0304 bic.w r3, fp, #4 + 8002f08: 6023 str r3, [r4, #0] + 8002f0a: f04f 0900 mov.w r9, #0 + 8002f0e: 9700 str r7, [sp, #0] + 8002f10: 4633 mov r3, r6 + 8002f12: aa0b add r2, sp, #44 @ 0x2c + 8002f14: 4621 mov r1, r4 + 8002f16: 4628 mov r0, r5 + 8002f18: f000 f9d2 bl 80032c0 <_printf_common> + 8002f1c: 3001 adds r0, #1 + 8002f1e: f040 808d bne.w 800303c <_printf_float+0x1d0> + 8002f22: f04f 30ff mov.w r0, #4294967295 + 8002f26: b00d add sp, #52 @ 0x34 + 8002f28: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8002f2c: 4642 mov r2, r8 + 8002f2e: 464b mov r3, r9 + 8002f30: 4640 mov r0, r8 + 8002f32: 4649 mov r1, r9 + 8002f34: f7fd fe02 bl 8000b3c <__aeabi_dcmpun> + 8002f38: b140 cbz r0, 8002f4c <_printf_float+0xe0> + 8002f3a: 464b mov r3, r9 + 8002f3c: 2b00 cmp r3, #0 + 8002f3e: bfbc itt lt + 8002f40: 232d movlt r3, #45 @ 0x2d + 8002f42: f884 3043 strblt.w r3, [r4, #67] @ 0x43 + 8002f46: 4a7e ldr r2, [pc, #504] @ (8003140 <_printf_float+0x2d4>) + 8002f48: 4b7e ldr r3, [pc, #504] @ (8003144 <_printf_float+0x2d8>) + 8002f4a: e7d4 b.n 8002ef6 <_printf_float+0x8a> + 8002f4c: 6863 ldr r3, [r4, #4] + 8002f4e: f00a 02df and.w r2, sl, #223 @ 0xdf + 8002f52: 9206 str r2, [sp, #24] + 8002f54: 1c5a adds r2, r3, #1 + 8002f56: d13b bne.n 8002fd0 <_printf_float+0x164> + 8002f58: 2306 movs r3, #6 + 8002f5a: 6063 str r3, [r4, #4] + 8002f5c: f44b 6280 orr.w r2, fp, #1024 @ 0x400 + 8002f60: 2300 movs r3, #0 + 8002f62: 6022 str r2, [r4, #0] + 8002f64: 9303 str r3, [sp, #12] + 8002f66: ab0a add r3, sp, #40 @ 0x28 + 8002f68: e9cd a301 strd sl, r3, [sp, #4] + 8002f6c: ab09 add r3, sp, #36 @ 0x24 + 8002f6e: 9300 str r3, [sp, #0] + 8002f70: 6861 ldr r1, [r4, #4] + 8002f72: ec49 8b10 vmov d0, r8, r9 + 8002f76: f10d 0323 add.w r3, sp, #35 @ 0x23 + 8002f7a: 4628 mov r0, r5 + 8002f7c: f7ff fed6 bl 8002d2c <__cvt> + 8002f80: 9b06 ldr r3, [sp, #24] + 8002f82: 9909 ldr r1, [sp, #36] @ 0x24 + 8002f84: 2b47 cmp r3, #71 @ 0x47 + 8002f86: 4680 mov r8, r0 + 8002f88: d129 bne.n 8002fde <_printf_float+0x172> + 8002f8a: 1cc8 adds r0, r1, #3 + 8002f8c: db02 blt.n 8002f94 <_printf_float+0x128> + 8002f8e: 6863 ldr r3, [r4, #4] + 8002f90: 4299 cmp r1, r3 + 8002f92: dd41 ble.n 8003018 <_printf_float+0x1ac> + 8002f94: f1aa 0a02 sub.w sl, sl, #2 + 8002f98: fa5f fa8a uxtb.w sl, sl + 8002f9c: 3901 subs r1, #1 + 8002f9e: 4652 mov r2, sl + 8002fa0: f104 0050 add.w r0, r4, #80 @ 0x50 + 8002fa4: 9109 str r1, [sp, #36] @ 0x24 + 8002fa6: f7ff ff26 bl 8002df6 <__exponent> + 8002faa: 9a0a ldr r2, [sp, #40] @ 0x28 + 8002fac: 1813 adds r3, r2, r0 + 8002fae: 2a01 cmp r2, #1 + 8002fb0: 4681 mov r9, r0 + 8002fb2: 6123 str r3, [r4, #16] + 8002fb4: dc02 bgt.n 8002fbc <_printf_float+0x150> + 8002fb6: 6822 ldr r2, [r4, #0] + 8002fb8: 07d2 lsls r2, r2, #31 + 8002fba: d501 bpl.n 8002fc0 <_printf_float+0x154> + 8002fbc: 3301 adds r3, #1 + 8002fbe: 6123 str r3, [r4, #16] + 8002fc0: f89d 3023 ldrb.w r3, [sp, #35] @ 0x23 + 8002fc4: 2b00 cmp r3, #0 + 8002fc6: d0a2 beq.n 8002f0e <_printf_float+0xa2> + 8002fc8: 232d movs r3, #45 @ 0x2d + 8002fca: f884 3043 strb.w r3, [r4, #67] @ 0x43 + 8002fce: e79e b.n 8002f0e <_printf_float+0xa2> + 8002fd0: 9a06 ldr r2, [sp, #24] + 8002fd2: 2a47 cmp r2, #71 @ 0x47 + 8002fd4: d1c2 bne.n 8002f5c <_printf_float+0xf0> + 8002fd6: 2b00 cmp r3, #0 + 8002fd8: d1c0 bne.n 8002f5c <_printf_float+0xf0> + 8002fda: 2301 movs r3, #1 + 8002fdc: e7bd b.n 8002f5a <_printf_float+0xee> + 8002fde: f1ba 0f65 cmp.w sl, #101 @ 0x65 + 8002fe2: d9db bls.n 8002f9c <_printf_float+0x130> + 8002fe4: f1ba 0f66 cmp.w sl, #102 @ 0x66 + 8002fe8: d118 bne.n 800301c <_printf_float+0x1b0> + 8002fea: 2900 cmp r1, #0 + 8002fec: 6863 ldr r3, [r4, #4] + 8002fee: dd0b ble.n 8003008 <_printf_float+0x19c> + 8002ff0: 6121 str r1, [r4, #16] + 8002ff2: b913 cbnz r3, 8002ffa <_printf_float+0x18e> + 8002ff4: 6822 ldr r2, [r4, #0] + 8002ff6: 07d0 lsls r0, r2, #31 + 8002ff8: d502 bpl.n 8003000 <_printf_float+0x194> + 8002ffa: 3301 adds r3, #1 + 8002ffc: 440b add r3, r1 + 8002ffe: 6123 str r3, [r4, #16] + 8003000: 65a1 str r1, [r4, #88] @ 0x58 + 8003002: f04f 0900 mov.w r9, #0 + 8003006: e7db b.n 8002fc0 <_printf_float+0x154> + 8003008: b913 cbnz r3, 8003010 <_printf_float+0x1a4> + 800300a: 6822 ldr r2, [r4, #0] + 800300c: 07d2 lsls r2, r2, #31 + 800300e: d501 bpl.n 8003014 <_printf_float+0x1a8> + 8003010: 3302 adds r3, #2 + 8003012: e7f4 b.n 8002ffe <_printf_float+0x192> + 8003014: 2301 movs r3, #1 + 8003016: e7f2 b.n 8002ffe <_printf_float+0x192> + 8003018: f04f 0a67 mov.w sl, #103 @ 0x67 + 800301c: 9b0a ldr r3, [sp, #40] @ 0x28 + 800301e: 4299 cmp r1, r3 + 8003020: db05 blt.n 800302e <_printf_float+0x1c2> + 8003022: 6823 ldr r3, [r4, #0] + 8003024: 6121 str r1, [r4, #16] + 8003026: 07d8 lsls r0, r3, #31 + 8003028: d5ea bpl.n 8003000 <_printf_float+0x194> + 800302a: 1c4b adds r3, r1, #1 + 800302c: e7e7 b.n 8002ffe <_printf_float+0x192> + 800302e: 2900 cmp r1, #0 + 8003030: bfd4 ite le + 8003032: f1c1 0202 rsble r2, r1, #2 + 8003036: 2201 movgt r2, #1 + 8003038: 4413 add r3, r2 + 800303a: e7e0 b.n 8002ffe <_printf_float+0x192> + 800303c: 6823 ldr r3, [r4, #0] + 800303e: 055a lsls r2, r3, #21 + 8003040: d407 bmi.n 8003052 <_printf_float+0x1e6> + 8003042: 6923 ldr r3, [r4, #16] + 8003044: 4642 mov r2, r8 + 8003046: 4631 mov r1, r6 + 8003048: 4628 mov r0, r5 + 800304a: 47b8 blx r7 + 800304c: 3001 adds r0, #1 + 800304e: d12b bne.n 80030a8 <_printf_float+0x23c> + 8003050: e767 b.n 8002f22 <_printf_float+0xb6> + 8003052: f1ba 0f65 cmp.w sl, #101 @ 0x65 + 8003056: f240 80dd bls.w 8003214 <_printf_float+0x3a8> + 800305a: e9d4 0112 ldrd r0, r1, [r4, #72] @ 0x48 + 800305e: 2200 movs r2, #0 + 8003060: 2300 movs r3, #0 + 8003062: f7fd fd39 bl 8000ad8 <__aeabi_dcmpeq> + 8003066: 2800 cmp r0, #0 + 8003068: d033 beq.n 80030d2 <_printf_float+0x266> + 800306a: 4a37 ldr r2, [pc, #220] @ (8003148 <_printf_float+0x2dc>) + 800306c: 2301 movs r3, #1 + 800306e: 4631 mov r1, r6 + 8003070: 4628 mov r0, r5 + 8003072: 47b8 blx r7 + 8003074: 3001 adds r0, #1 + 8003076: f43f af54 beq.w 8002f22 <_printf_float+0xb6> + 800307a: e9dd 3809 ldrd r3, r8, [sp, #36] @ 0x24 + 800307e: 4543 cmp r3, r8 + 8003080: db02 blt.n 8003088 <_printf_float+0x21c> + 8003082: 6823 ldr r3, [r4, #0] + 8003084: 07d8 lsls r0, r3, #31 + 8003086: d50f bpl.n 80030a8 <_printf_float+0x23c> + 8003088: e9dd 2304 ldrd r2, r3, [sp, #16] + 800308c: 4631 mov r1, r6 + 800308e: 4628 mov r0, r5 + 8003090: 47b8 blx r7 + 8003092: 3001 adds r0, #1 + 8003094: f43f af45 beq.w 8002f22 <_printf_float+0xb6> + 8003098: f04f 0900 mov.w r9, #0 + 800309c: f108 38ff add.w r8, r8, #4294967295 + 80030a0: f104 0a1a add.w sl, r4, #26 + 80030a4: 45c8 cmp r8, r9 + 80030a6: dc09 bgt.n 80030bc <_printf_float+0x250> + 80030a8: 6823 ldr r3, [r4, #0] + 80030aa: 079b lsls r3, r3, #30 + 80030ac: f100 8103 bmi.w 80032b6 <_printf_float+0x44a> + 80030b0: 68e0 ldr r0, [r4, #12] + 80030b2: 9b0b ldr r3, [sp, #44] @ 0x2c + 80030b4: 4298 cmp r0, r3 + 80030b6: bfb8 it lt + 80030b8: 4618 movlt r0, r3 + 80030ba: e734 b.n 8002f26 <_printf_float+0xba> + 80030bc: 2301 movs r3, #1 + 80030be: 4652 mov r2, sl + 80030c0: 4631 mov r1, r6 + 80030c2: 4628 mov r0, r5 + 80030c4: 47b8 blx r7 + 80030c6: 3001 adds r0, #1 + 80030c8: f43f af2b beq.w 8002f22 <_printf_float+0xb6> + 80030cc: f109 0901 add.w r9, r9, #1 + 80030d0: e7e8 b.n 80030a4 <_printf_float+0x238> + 80030d2: 9b09 ldr r3, [sp, #36] @ 0x24 + 80030d4: 2b00 cmp r3, #0 + 80030d6: dc39 bgt.n 800314c <_printf_float+0x2e0> + 80030d8: 4a1b ldr r2, [pc, #108] @ (8003148 <_printf_float+0x2dc>) + 80030da: 2301 movs r3, #1 + 80030dc: 4631 mov r1, r6 + 80030de: 4628 mov r0, r5 + 80030e0: 47b8 blx r7 + 80030e2: 3001 adds r0, #1 + 80030e4: f43f af1d beq.w 8002f22 <_printf_float+0xb6> + 80030e8: e9dd 3909 ldrd r3, r9, [sp, #36] @ 0x24 + 80030ec: ea59 0303 orrs.w r3, r9, r3 + 80030f0: d102 bne.n 80030f8 <_printf_float+0x28c> + 80030f2: 6823 ldr r3, [r4, #0] + 80030f4: 07d9 lsls r1, r3, #31 + 80030f6: d5d7 bpl.n 80030a8 <_printf_float+0x23c> + 80030f8: e9dd 2304 ldrd r2, r3, [sp, #16] + 80030fc: 4631 mov r1, r6 + 80030fe: 4628 mov r0, r5 + 8003100: 47b8 blx r7 + 8003102: 3001 adds r0, #1 + 8003104: f43f af0d beq.w 8002f22 <_printf_float+0xb6> + 8003108: f04f 0a00 mov.w sl, #0 + 800310c: f104 0b1a add.w fp, r4, #26 + 8003110: 9b09 ldr r3, [sp, #36] @ 0x24 + 8003112: 425b negs r3, r3 + 8003114: 4553 cmp r3, sl + 8003116: dc01 bgt.n 800311c <_printf_float+0x2b0> + 8003118: 464b mov r3, r9 + 800311a: e793 b.n 8003044 <_printf_float+0x1d8> + 800311c: 2301 movs r3, #1 + 800311e: 465a mov r2, fp + 8003120: 4631 mov r1, r6 + 8003122: 4628 mov r0, r5 + 8003124: 47b8 blx r7 + 8003126: 3001 adds r0, #1 + 8003128: f43f aefb beq.w 8002f22 <_printf_float+0xb6> + 800312c: f10a 0a01 add.w sl, sl, #1 + 8003130: e7ee b.n 8003110 <_printf_float+0x2a4> + 8003132: bf00 nop + 8003134: 7fefffff .word 0x7fefffff + 8003138: 0800568c .word 0x0800568c + 800313c: 08005688 .word 0x08005688 + 8003140: 08005694 .word 0x08005694 + 8003144: 08005690 .word 0x08005690 + 8003148: 08005698 .word 0x08005698 + 800314c: 6da3 ldr r3, [r4, #88] @ 0x58 + 800314e: f8dd a028 ldr.w sl, [sp, #40] @ 0x28 + 8003152: 4553 cmp r3, sl + 8003154: bfa8 it ge + 8003156: 4653 movge r3, sl + 8003158: 2b00 cmp r3, #0 + 800315a: 4699 mov r9, r3 + 800315c: dc36 bgt.n 80031cc <_printf_float+0x360> + 800315e: f04f 0b00 mov.w fp, #0 + 8003162: ea29 79e9 bic.w r9, r9, r9, asr #31 + 8003166: f104 021a add.w r2, r4, #26 + 800316a: 6da3 ldr r3, [r4, #88] @ 0x58 + 800316c: 9306 str r3, [sp, #24] + 800316e: eba3 0309 sub.w r3, r3, r9 + 8003172: 455b cmp r3, fp + 8003174: dc31 bgt.n 80031da <_printf_float+0x36e> + 8003176: 9b09 ldr r3, [sp, #36] @ 0x24 + 8003178: 459a cmp sl, r3 + 800317a: dc3a bgt.n 80031f2 <_printf_float+0x386> + 800317c: 6823 ldr r3, [r4, #0] + 800317e: 07da lsls r2, r3, #31 + 8003180: d437 bmi.n 80031f2 <_printf_float+0x386> + 8003182: 9b09 ldr r3, [sp, #36] @ 0x24 + 8003184: ebaa 0903 sub.w r9, sl, r3 + 8003188: 9b06 ldr r3, [sp, #24] + 800318a: ebaa 0303 sub.w r3, sl, r3 + 800318e: 4599 cmp r9, r3 + 8003190: bfa8 it ge + 8003192: 4699 movge r9, r3 + 8003194: f1b9 0f00 cmp.w r9, #0 + 8003198: dc33 bgt.n 8003202 <_printf_float+0x396> + 800319a: f04f 0800 mov.w r8, #0 + 800319e: ea29 79e9 bic.w r9, r9, r9, asr #31 + 80031a2: f104 0b1a add.w fp, r4, #26 + 80031a6: 9b09 ldr r3, [sp, #36] @ 0x24 + 80031a8: ebaa 0303 sub.w r3, sl, r3 + 80031ac: eba3 0309 sub.w r3, r3, r9 + 80031b0: 4543 cmp r3, r8 + 80031b2: f77f af79 ble.w 80030a8 <_printf_float+0x23c> + 80031b6: 2301 movs r3, #1 + 80031b8: 465a mov r2, fp + 80031ba: 4631 mov r1, r6 + 80031bc: 4628 mov r0, r5 + 80031be: 47b8 blx r7 + 80031c0: 3001 adds r0, #1 + 80031c2: f43f aeae beq.w 8002f22 <_printf_float+0xb6> + 80031c6: f108 0801 add.w r8, r8, #1 + 80031ca: e7ec b.n 80031a6 <_printf_float+0x33a> + 80031cc: 4642 mov r2, r8 + 80031ce: 4631 mov r1, r6 + 80031d0: 4628 mov r0, r5 + 80031d2: 47b8 blx r7 + 80031d4: 3001 adds r0, #1 + 80031d6: d1c2 bne.n 800315e <_printf_float+0x2f2> + 80031d8: e6a3 b.n 8002f22 <_printf_float+0xb6> + 80031da: 2301 movs r3, #1 + 80031dc: 4631 mov r1, r6 + 80031de: 4628 mov r0, r5 + 80031e0: 9206 str r2, [sp, #24] + 80031e2: 47b8 blx r7 + 80031e4: 3001 adds r0, #1 + 80031e6: f43f ae9c beq.w 8002f22 <_printf_float+0xb6> + 80031ea: 9a06 ldr r2, [sp, #24] + 80031ec: f10b 0b01 add.w fp, fp, #1 + 80031f0: e7bb b.n 800316a <_printf_float+0x2fe> + 80031f2: e9dd 2304 ldrd r2, r3, [sp, #16] + 80031f6: 4631 mov r1, r6 + 80031f8: 4628 mov r0, r5 + 80031fa: 47b8 blx r7 + 80031fc: 3001 adds r0, #1 + 80031fe: d1c0 bne.n 8003182 <_printf_float+0x316> + 8003200: e68f b.n 8002f22 <_printf_float+0xb6> + 8003202: 9a06 ldr r2, [sp, #24] + 8003204: 464b mov r3, r9 + 8003206: 4442 add r2, r8 + 8003208: 4631 mov r1, r6 + 800320a: 4628 mov r0, r5 + 800320c: 47b8 blx r7 + 800320e: 3001 adds r0, #1 + 8003210: d1c3 bne.n 800319a <_printf_float+0x32e> + 8003212: e686 b.n 8002f22 <_printf_float+0xb6> + 8003214: f8dd a028 ldr.w sl, [sp, #40] @ 0x28 + 8003218: f1ba 0f01 cmp.w sl, #1 + 800321c: dc01 bgt.n 8003222 <_printf_float+0x3b6> + 800321e: 07db lsls r3, r3, #31 + 8003220: d536 bpl.n 8003290 <_printf_float+0x424> + 8003222: 2301 movs r3, #1 + 8003224: 4642 mov r2, r8 + 8003226: 4631 mov r1, r6 + 8003228: 4628 mov r0, r5 + 800322a: 47b8 blx r7 + 800322c: 3001 adds r0, #1 + 800322e: f43f ae78 beq.w 8002f22 <_printf_float+0xb6> + 8003232: e9dd 2304 ldrd r2, r3, [sp, #16] + 8003236: 4631 mov r1, r6 + 8003238: 4628 mov r0, r5 + 800323a: 47b8 blx r7 + 800323c: 3001 adds r0, #1 + 800323e: f43f ae70 beq.w 8002f22 <_printf_float+0xb6> + 8003242: e9d4 0112 ldrd r0, r1, [r4, #72] @ 0x48 + 8003246: 2200 movs r2, #0 + 8003248: 2300 movs r3, #0 + 800324a: f10a 3aff add.w sl, sl, #4294967295 + 800324e: f7fd fc43 bl 8000ad8 <__aeabi_dcmpeq> + 8003252: b9c0 cbnz r0, 8003286 <_printf_float+0x41a> + 8003254: 4653 mov r3, sl + 8003256: f108 0201 add.w r2, r8, #1 + 800325a: 4631 mov r1, r6 + 800325c: 4628 mov r0, r5 + 800325e: 47b8 blx r7 + 8003260: 3001 adds r0, #1 + 8003262: d10c bne.n 800327e <_printf_float+0x412> + 8003264: e65d b.n 8002f22 <_printf_float+0xb6> + 8003266: 2301 movs r3, #1 + 8003268: 465a mov r2, fp + 800326a: 4631 mov r1, r6 + 800326c: 4628 mov r0, r5 + 800326e: 47b8 blx r7 + 8003270: 3001 adds r0, #1 + 8003272: f43f ae56 beq.w 8002f22 <_printf_float+0xb6> + 8003276: f108 0801 add.w r8, r8, #1 + 800327a: 45d0 cmp r8, sl + 800327c: dbf3 blt.n 8003266 <_printf_float+0x3fa> + 800327e: 464b mov r3, r9 + 8003280: f104 0250 add.w r2, r4, #80 @ 0x50 + 8003284: e6df b.n 8003046 <_printf_float+0x1da> + 8003286: f04f 0800 mov.w r8, #0 + 800328a: f104 0b1a add.w fp, r4, #26 + 800328e: e7f4 b.n 800327a <_printf_float+0x40e> + 8003290: 2301 movs r3, #1 + 8003292: 4642 mov r2, r8 + 8003294: e7e1 b.n 800325a <_printf_float+0x3ee> + 8003296: 2301 movs r3, #1 + 8003298: 464a mov r2, r9 + 800329a: 4631 mov r1, r6 + 800329c: 4628 mov r0, r5 + 800329e: 47b8 blx r7 + 80032a0: 3001 adds r0, #1 + 80032a2: f43f ae3e beq.w 8002f22 <_printf_float+0xb6> + 80032a6: f108 0801 add.w r8, r8, #1 + 80032aa: 68e3 ldr r3, [r4, #12] + 80032ac: 990b ldr r1, [sp, #44] @ 0x2c + 80032ae: 1a5b subs r3, r3, r1 + 80032b0: 4543 cmp r3, r8 + 80032b2: dcf0 bgt.n 8003296 <_printf_float+0x42a> + 80032b4: e6fc b.n 80030b0 <_printf_float+0x244> + 80032b6: f04f 0800 mov.w r8, #0 + 80032ba: f104 0919 add.w r9, r4, #25 + 80032be: e7f4 b.n 80032aa <_printf_float+0x43e> -08007c74 : - 8007c74: 2300 movs r3, #0 - 8007c76: b510 push {r4, lr} - 8007c78: 4604 mov r4, r0 - 8007c7a: e9c0 3300 strd r3, r3, [r0] - 8007c7e: e9c0 3304 strd r3, r3, [r0, #16] - 8007c82: 6083 str r3, [r0, #8] - 8007c84: 8181 strh r1, [r0, #12] - 8007c86: 6643 str r3, [r0, #100] @ 0x64 - 8007c88: 81c2 strh r2, [r0, #14] - 8007c8a: 6183 str r3, [r0, #24] - 8007c8c: 4619 mov r1, r3 - 8007c8e: 2208 movs r2, #8 - 8007c90: 305c adds r0, #92 @ 0x5c - 8007c92: f000 f93c bl 8007f0e - 8007c96: 4b0d ldr r3, [pc, #52] @ (8007ccc ) - 8007c98: 6263 str r3, [r4, #36] @ 0x24 - 8007c9a: 4b0d ldr r3, [pc, #52] @ (8007cd0 ) - 8007c9c: 62a3 str r3, [r4, #40] @ 0x28 - 8007c9e: 4b0d ldr r3, [pc, #52] @ (8007cd4 ) - 8007ca0: 62e3 str r3, [r4, #44] @ 0x2c - 8007ca2: 4b0d ldr r3, [pc, #52] @ (8007cd8 ) - 8007ca4: 6323 str r3, [r4, #48] @ 0x30 - 8007ca6: 4b0d ldr r3, [pc, #52] @ (8007cdc ) - 8007ca8: 6224 str r4, [r4, #32] - 8007caa: 429c cmp r4, r3 - 8007cac: d006 beq.n 8007cbc - 8007cae: f103 0268 add.w r2, r3, #104 @ 0x68 - 8007cb2: 4294 cmp r4, r2 - 8007cb4: d002 beq.n 8007cbc - 8007cb6: 33d0 adds r3, #208 @ 0xd0 - 8007cb8: 429c cmp r4, r3 - 8007cba: d105 bne.n 8007cc8 - 8007cbc: f104 0058 add.w r0, r4, #88 @ 0x58 - 8007cc0: e8bd 4010 ldmia.w sp!, {r4, lr} - 8007cc4: f000 b9a0 b.w 8008008 <__retarget_lock_init_recursive> - 8007cc8: bd10 pop {r4, pc} - 8007cca: bf00 nop - 8007ccc: 08007e89 .word 0x08007e89 - 8007cd0: 08007eab .word 0x08007eab - 8007cd4: 08007ee3 .word 0x08007ee3 - 8007cd8: 08007f07 .word 0x08007f07 - 8007cdc: 200003a4 .word 0x200003a4 - -08007ce0 : - 8007ce0: 4a02 ldr r2, [pc, #8] @ (8007cec ) - 8007ce2: 4903 ldr r1, [pc, #12] @ (8007cf0 ) - 8007ce4: 4803 ldr r0, [pc, #12] @ (8007cf4 ) - 8007ce6: f000 b869 b.w 8007dbc <_fwalk_sglue> - 8007cea: bf00 nop - 8007cec: 2000000c .word 0x2000000c - 8007cf0: 08009bf1 .word 0x08009bf1 - 8007cf4: 2000001c .word 0x2000001c - -08007cf8 : - 8007cf8: 6841 ldr r1, [r0, #4] - 8007cfa: 4b0c ldr r3, [pc, #48] @ (8007d2c ) - 8007cfc: 4299 cmp r1, r3 - 8007cfe: b510 push {r4, lr} - 8007d00: 4604 mov r4, r0 - 8007d02: d001 beq.n 8007d08 - 8007d04: f001 ff74 bl 8009bf0 <_fflush_r> - 8007d08: 68a1 ldr r1, [r4, #8] - 8007d0a: 4b09 ldr r3, [pc, #36] @ (8007d30 ) - 8007d0c: 4299 cmp r1, r3 - 8007d0e: d002 beq.n 8007d16 - 8007d10: 4620 mov r0, r4 - 8007d12: f001 ff6d bl 8009bf0 <_fflush_r> - 8007d16: 68e1 ldr r1, [r4, #12] - 8007d18: 4b06 ldr r3, [pc, #24] @ (8007d34 ) - 8007d1a: 4299 cmp r1, r3 - 8007d1c: d004 beq.n 8007d28 - 8007d1e: 4620 mov r0, r4 - 8007d20: e8bd 4010 ldmia.w sp!, {r4, lr} - 8007d24: f001 bf64 b.w 8009bf0 <_fflush_r> - 8007d28: bd10 pop {r4, pc} - 8007d2a: bf00 nop - 8007d2c: 200003a4 .word 0x200003a4 - 8007d30: 2000040c .word 0x2000040c - 8007d34: 20000474 .word 0x20000474 - -08007d38 : - 8007d38: b510 push {r4, lr} - 8007d3a: 4b0b ldr r3, [pc, #44] @ (8007d68 ) - 8007d3c: 4c0b ldr r4, [pc, #44] @ (8007d6c ) - 8007d3e: 4a0c ldr r2, [pc, #48] @ (8007d70 ) - 8007d40: 601a str r2, [r3, #0] - 8007d42: 4620 mov r0, r4 - 8007d44: 2200 movs r2, #0 - 8007d46: 2104 movs r1, #4 - 8007d48: f7ff ff94 bl 8007c74 - 8007d4c: f104 0068 add.w r0, r4, #104 @ 0x68 - 8007d50: 2201 movs r2, #1 - 8007d52: 2109 movs r1, #9 - 8007d54: f7ff ff8e bl 8007c74 - 8007d58: f104 00d0 add.w r0, r4, #208 @ 0xd0 - 8007d5c: 2202 movs r2, #2 - 8007d5e: e8bd 4010 ldmia.w sp!, {r4, lr} - 8007d62: 2112 movs r1, #18 - 8007d64: f7ff bf86 b.w 8007c74 - 8007d68: 200004dc .word 0x200004dc - 8007d6c: 200003a4 .word 0x200003a4 - 8007d70: 08007ce1 .word 0x08007ce1 - -08007d74 <__sfp_lock_acquire>: - 8007d74: 4801 ldr r0, [pc, #4] @ (8007d7c <__sfp_lock_acquire+0x8>) - 8007d76: f000 b948 b.w 800800a <__retarget_lock_acquire_recursive> - 8007d7a: bf00 nop - 8007d7c: 200004e5 .word 0x200004e5 - -08007d80 <__sfp_lock_release>: - 8007d80: 4801 ldr r0, [pc, #4] @ (8007d88 <__sfp_lock_release+0x8>) - 8007d82: f000 b943 b.w 800800c <__retarget_lock_release_recursive> - 8007d86: bf00 nop - 8007d88: 200004e5 .word 0x200004e5 - -08007d8c <__sinit>: - 8007d8c: b510 push {r4, lr} - 8007d8e: 4604 mov r4, r0 - 8007d90: f7ff fff0 bl 8007d74 <__sfp_lock_acquire> - 8007d94: 6a23 ldr r3, [r4, #32] - 8007d96: b11b cbz r3, 8007da0 <__sinit+0x14> - 8007d98: e8bd 4010 ldmia.w sp!, {r4, lr} - 8007d9c: f7ff bff0 b.w 8007d80 <__sfp_lock_release> - 8007da0: 4b04 ldr r3, [pc, #16] @ (8007db4 <__sinit+0x28>) - 8007da2: 6223 str r3, [r4, #32] - 8007da4: 4b04 ldr r3, [pc, #16] @ (8007db8 <__sinit+0x2c>) - 8007da6: 681b ldr r3, [r3, #0] - 8007da8: 2b00 cmp r3, #0 - 8007daa: d1f5 bne.n 8007d98 <__sinit+0xc> - 8007dac: f7ff ffc4 bl 8007d38 - 8007db0: e7f2 b.n 8007d98 <__sinit+0xc> - 8007db2: bf00 nop - 8007db4: 08007cf9 .word 0x08007cf9 - 8007db8: 200004dc .word 0x200004dc - -08007dbc <_fwalk_sglue>: - 8007dbc: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 8007dc0: 4607 mov r7, r0 - 8007dc2: 4688 mov r8, r1 - 8007dc4: 4614 mov r4, r2 - 8007dc6: 2600 movs r6, #0 - 8007dc8: e9d4 9501 ldrd r9, r5, [r4, #4] - 8007dcc: f1b9 0901 subs.w r9, r9, #1 - 8007dd0: d505 bpl.n 8007dde <_fwalk_sglue+0x22> - 8007dd2: 6824 ldr r4, [r4, #0] - 8007dd4: 2c00 cmp r4, #0 - 8007dd6: d1f7 bne.n 8007dc8 <_fwalk_sglue+0xc> - 8007dd8: 4630 mov r0, r6 - 8007dda: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8007dde: 89ab ldrh r3, [r5, #12] - 8007de0: 2b01 cmp r3, #1 - 8007de2: d907 bls.n 8007df4 <_fwalk_sglue+0x38> - 8007de4: f9b5 300e ldrsh.w r3, [r5, #14] - 8007de8: 3301 adds r3, #1 - 8007dea: d003 beq.n 8007df4 <_fwalk_sglue+0x38> - 8007dec: 4629 mov r1, r5 - 8007dee: 4638 mov r0, r7 - 8007df0: 47c0 blx r8 - 8007df2: 4306 orrs r6, r0 - 8007df4: 3568 adds r5, #104 @ 0x68 - 8007df6: e7e9 b.n 8007dcc <_fwalk_sglue+0x10> - -08007df8 : - 8007df8: b40f push {r0, r1, r2, r3} - 8007dfa: b507 push {r0, r1, r2, lr} - 8007dfc: 4906 ldr r1, [pc, #24] @ (8007e18 ) - 8007dfe: ab04 add r3, sp, #16 - 8007e00: 6808 ldr r0, [r1, #0] - 8007e02: f853 2b04 ldr.w r2, [r3], #4 - 8007e06: 6881 ldr r1, [r0, #8] - 8007e08: 9301 str r3, [sp, #4] - 8007e0a: f001 fd55 bl 80098b8 <_vfiprintf_r> - 8007e0e: b003 add sp, #12 - 8007e10: f85d eb04 ldr.w lr, [sp], #4 - 8007e14: b004 add sp, #16 - 8007e16: 4770 bx lr - 8007e18: 20000018 .word 0x20000018 - -08007e1c : - 8007e1c: b40c push {r2, r3} - 8007e1e: b530 push {r4, r5, lr} - 8007e20: 4b18 ldr r3, [pc, #96] @ (8007e84 ) - 8007e22: 1e0c subs r4, r1, #0 - 8007e24: 681d ldr r5, [r3, #0] - 8007e26: b09d sub sp, #116 @ 0x74 - 8007e28: da08 bge.n 8007e3c - 8007e2a: 238b movs r3, #139 @ 0x8b - 8007e2c: 602b str r3, [r5, #0] - 8007e2e: f04f 30ff mov.w r0, #4294967295 - 8007e32: b01d add sp, #116 @ 0x74 - 8007e34: e8bd 4030 ldmia.w sp!, {r4, r5, lr} - 8007e38: b002 add sp, #8 - 8007e3a: 4770 bx lr - 8007e3c: f44f 7302 mov.w r3, #520 @ 0x208 - 8007e40: f8ad 3014 strh.w r3, [sp, #20] - 8007e44: f04f 0300 mov.w r3, #0 - 8007e48: 931b str r3, [sp, #108] @ 0x6c - 8007e4a: bf14 ite ne - 8007e4c: f104 33ff addne.w r3, r4, #4294967295 - 8007e50: 4623 moveq r3, r4 - 8007e52: 9304 str r3, [sp, #16] - 8007e54: 9307 str r3, [sp, #28] - 8007e56: f64f 73ff movw r3, #65535 @ 0xffff - 8007e5a: 9002 str r0, [sp, #8] - 8007e5c: 9006 str r0, [sp, #24] - 8007e5e: f8ad 3016 strh.w r3, [sp, #22] - 8007e62: 9a20 ldr r2, [sp, #128] @ 0x80 - 8007e64: ab21 add r3, sp, #132 @ 0x84 - 8007e66: a902 add r1, sp, #8 - 8007e68: 4628 mov r0, r5 - 8007e6a: 9301 str r3, [sp, #4] - 8007e6c: f001 fbfe bl 800966c <_svfiprintf_r> - 8007e70: 1c43 adds r3, r0, #1 - 8007e72: bfbc itt lt - 8007e74: 238b movlt r3, #139 @ 0x8b - 8007e76: 602b strlt r3, [r5, #0] - 8007e78: 2c00 cmp r4, #0 - 8007e7a: d0da beq.n 8007e32 - 8007e7c: 9b02 ldr r3, [sp, #8] - 8007e7e: 2200 movs r2, #0 - 8007e80: 701a strb r2, [r3, #0] - 8007e82: e7d6 b.n 8007e32 - 8007e84: 20000018 .word 0x20000018 - -08007e88 <__sread>: - 8007e88: b510 push {r4, lr} - 8007e8a: 460c mov r4, r1 - 8007e8c: f9b1 100e ldrsh.w r1, [r1, #14] - 8007e90: f000 f86c bl 8007f6c <_read_r> - 8007e94: 2800 cmp r0, #0 - 8007e96: bfab itete ge - 8007e98: 6d63 ldrge r3, [r4, #84] @ 0x54 - 8007e9a: 89a3 ldrhlt r3, [r4, #12] - 8007e9c: 181b addge r3, r3, r0 - 8007e9e: f423 5380 biclt.w r3, r3, #4096 @ 0x1000 - 8007ea2: bfac ite ge - 8007ea4: 6563 strge r3, [r4, #84] @ 0x54 - 8007ea6: 81a3 strhlt r3, [r4, #12] - 8007ea8: bd10 pop {r4, pc} - -08007eaa <__swrite>: - 8007eaa: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8007eae: 461f mov r7, r3 - 8007eb0: 898b ldrh r3, [r1, #12] - 8007eb2: 05db lsls r3, r3, #23 - 8007eb4: 4605 mov r5, r0 - 8007eb6: 460c mov r4, r1 - 8007eb8: 4616 mov r6, r2 - 8007eba: d505 bpl.n 8007ec8 <__swrite+0x1e> - 8007ebc: f9b1 100e ldrsh.w r1, [r1, #14] - 8007ec0: 2302 movs r3, #2 - 8007ec2: 2200 movs r2, #0 - 8007ec4: f000 f840 bl 8007f48 <_lseek_r> - 8007ec8: 89a3 ldrh r3, [r4, #12] - 8007eca: f9b4 100e ldrsh.w r1, [r4, #14] - 8007ece: f423 5380 bic.w r3, r3, #4096 @ 0x1000 - 8007ed2: 81a3 strh r3, [r4, #12] - 8007ed4: 4632 mov r2, r6 - 8007ed6: 463b mov r3, r7 - 8007ed8: 4628 mov r0, r5 - 8007eda: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 8007ede: f000 b857 b.w 8007f90 <_write_r> - -08007ee2 <__sseek>: - 8007ee2: b510 push {r4, lr} - 8007ee4: 460c mov r4, r1 - 8007ee6: f9b1 100e ldrsh.w r1, [r1, #14] - 8007eea: f000 f82d bl 8007f48 <_lseek_r> - 8007eee: 1c43 adds r3, r0, #1 - 8007ef0: 89a3 ldrh r3, [r4, #12] - 8007ef2: bf15 itete ne - 8007ef4: 6560 strne r0, [r4, #84] @ 0x54 - 8007ef6: f423 5380 biceq.w r3, r3, #4096 @ 0x1000 - 8007efa: f443 5380 orrne.w r3, r3, #4096 @ 0x1000 - 8007efe: 81a3 strheq r3, [r4, #12] - 8007f00: bf18 it ne - 8007f02: 81a3 strhne r3, [r4, #12] - 8007f04: bd10 pop {r4, pc} - -08007f06 <__sclose>: - 8007f06: f9b1 100e ldrsh.w r1, [r1, #14] - 8007f0a: f000 b80d b.w 8007f28 <_close_r> - -08007f0e : - 8007f0e: 4402 add r2, r0 - 8007f10: 4603 mov r3, r0 - 8007f12: 4293 cmp r3, r2 - 8007f14: d100 bne.n 8007f18 - 8007f16: 4770 bx lr - 8007f18: f803 1b01 strb.w r1, [r3], #1 - 8007f1c: e7f9 b.n 8007f12 +080032c0 <_printf_common>: + 80032c0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 80032c4: 4616 mov r6, r2 + 80032c6: 4698 mov r8, r3 + 80032c8: 688a ldr r2, [r1, #8] + 80032ca: 690b ldr r3, [r1, #16] + 80032cc: f8dd 9020 ldr.w r9, [sp, #32] + 80032d0: 4293 cmp r3, r2 + 80032d2: bfb8 it lt + 80032d4: 4613 movlt r3, r2 + 80032d6: 6033 str r3, [r6, #0] + 80032d8: f891 2043 ldrb.w r2, [r1, #67] @ 0x43 + 80032dc: 4607 mov r7, r0 + 80032de: 460c mov r4, r1 + 80032e0: b10a cbz r2, 80032e6 <_printf_common+0x26> + 80032e2: 3301 adds r3, #1 + 80032e4: 6033 str r3, [r6, #0] + 80032e6: 6823 ldr r3, [r4, #0] + 80032e8: 0699 lsls r1, r3, #26 + 80032ea: bf42 ittt mi + 80032ec: 6833 ldrmi r3, [r6, #0] + 80032ee: 3302 addmi r3, #2 + 80032f0: 6033 strmi r3, [r6, #0] + 80032f2: 6825 ldr r5, [r4, #0] + 80032f4: f015 0506 ands.w r5, r5, #6 + 80032f8: d106 bne.n 8003308 <_printf_common+0x48> + 80032fa: f104 0a19 add.w sl, r4, #25 + 80032fe: 68e3 ldr r3, [r4, #12] + 8003300: 6832 ldr r2, [r6, #0] + 8003302: 1a9b subs r3, r3, r2 + 8003304: 42ab cmp r3, r5 + 8003306: dc26 bgt.n 8003356 <_printf_common+0x96> + 8003308: f894 3043 ldrb.w r3, [r4, #67] @ 0x43 + 800330c: 6822 ldr r2, [r4, #0] + 800330e: 3b00 subs r3, #0 + 8003310: bf18 it ne + 8003312: 2301 movne r3, #1 + 8003314: 0692 lsls r2, r2, #26 + 8003316: d42b bmi.n 8003370 <_printf_common+0xb0> + 8003318: f104 0243 add.w r2, r4, #67 @ 0x43 + 800331c: 4641 mov r1, r8 + 800331e: 4638 mov r0, r7 + 8003320: 47c8 blx r9 + 8003322: 3001 adds r0, #1 + 8003324: d01e beq.n 8003364 <_printf_common+0xa4> + 8003326: 6823 ldr r3, [r4, #0] + 8003328: 6922 ldr r2, [r4, #16] + 800332a: f003 0306 and.w r3, r3, #6 + 800332e: 2b04 cmp r3, #4 + 8003330: bf02 ittt eq + 8003332: 68e5 ldreq r5, [r4, #12] + 8003334: 6833 ldreq r3, [r6, #0] + 8003336: 1aed subeq r5, r5, r3 + 8003338: 68a3 ldr r3, [r4, #8] + 800333a: bf0c ite eq + 800333c: ea25 75e5 biceq.w r5, r5, r5, asr #31 + 8003340: 2500 movne r5, #0 + 8003342: 4293 cmp r3, r2 + 8003344: bfc4 itt gt + 8003346: 1a9b subgt r3, r3, r2 + 8003348: 18ed addgt r5, r5, r3 + 800334a: 2600 movs r6, #0 + 800334c: 341a adds r4, #26 + 800334e: 42b5 cmp r5, r6 + 8003350: d11a bne.n 8003388 <_printf_common+0xc8> + 8003352: 2000 movs r0, #0 + 8003354: e008 b.n 8003368 <_printf_common+0xa8> + 8003356: 2301 movs r3, #1 + 8003358: 4652 mov r2, sl + 800335a: 4641 mov r1, r8 + 800335c: 4638 mov r0, r7 + 800335e: 47c8 blx r9 + 8003360: 3001 adds r0, #1 + 8003362: d103 bne.n 800336c <_printf_common+0xac> + 8003364: f04f 30ff mov.w r0, #4294967295 + 8003368: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 800336c: 3501 adds r5, #1 + 800336e: e7c6 b.n 80032fe <_printf_common+0x3e> + 8003370: 18e1 adds r1, r4, r3 + 8003372: 1c5a adds r2, r3, #1 + 8003374: 2030 movs r0, #48 @ 0x30 + 8003376: f881 0043 strb.w r0, [r1, #67] @ 0x43 + 800337a: 4422 add r2, r4 + 800337c: f894 1045 ldrb.w r1, [r4, #69] @ 0x45 + 8003380: f882 1043 strb.w r1, [r2, #67] @ 0x43 + 8003384: 3302 adds r3, #2 + 8003386: e7c7 b.n 8003318 <_printf_common+0x58> + 8003388: 2301 movs r3, #1 + 800338a: 4622 mov r2, r4 + 800338c: 4641 mov r1, r8 + 800338e: 4638 mov r0, r7 + 8003390: 47c8 blx r9 + 8003392: 3001 adds r0, #1 + 8003394: d0e6 beq.n 8003364 <_printf_common+0xa4> + 8003396: 3601 adds r6, #1 + 8003398: e7d9 b.n 800334e <_printf_common+0x8e> ... -08007f20 <_localeconv_r>: - 8007f20: 4800 ldr r0, [pc, #0] @ (8007f24 <_localeconv_r+0x4>) - 8007f22: 4770 bx lr - 8007f24: 20000158 .word 0x20000158 +0800339c <_printf_i>: + 800339c: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} + 80033a0: 7e0f ldrb r7, [r1, #24] + 80033a2: 9e0c ldr r6, [sp, #48] @ 0x30 + 80033a4: 2f78 cmp r7, #120 @ 0x78 + 80033a6: 4691 mov r9, r2 + 80033a8: 4680 mov r8, r0 + 80033aa: 460c mov r4, r1 + 80033ac: 469a mov sl, r3 + 80033ae: f101 0243 add.w r2, r1, #67 @ 0x43 + 80033b2: d807 bhi.n 80033c4 <_printf_i+0x28> + 80033b4: 2f62 cmp r7, #98 @ 0x62 + 80033b6: d80a bhi.n 80033ce <_printf_i+0x32> + 80033b8: 2f00 cmp r7, #0 + 80033ba: f000 80d1 beq.w 8003560 <_printf_i+0x1c4> + 80033be: 2f58 cmp r7, #88 @ 0x58 + 80033c0: f000 80b8 beq.w 8003534 <_printf_i+0x198> + 80033c4: f104 0642 add.w r6, r4, #66 @ 0x42 + 80033c8: f884 7042 strb.w r7, [r4, #66] @ 0x42 + 80033cc: e03a b.n 8003444 <_printf_i+0xa8> + 80033ce: f1a7 0363 sub.w r3, r7, #99 @ 0x63 + 80033d2: 2b15 cmp r3, #21 + 80033d4: d8f6 bhi.n 80033c4 <_printf_i+0x28> + 80033d6: a101 add r1, pc, #4 @ (adr r1, 80033dc <_printf_i+0x40>) + 80033d8: f851 f023 ldr.w pc, [r1, r3, lsl #2] + 80033dc: 08003435 .word 0x08003435 + 80033e0: 08003449 .word 0x08003449 + 80033e4: 080033c5 .word 0x080033c5 + 80033e8: 080033c5 .word 0x080033c5 + 80033ec: 080033c5 .word 0x080033c5 + 80033f0: 080033c5 .word 0x080033c5 + 80033f4: 08003449 .word 0x08003449 + 80033f8: 080033c5 .word 0x080033c5 + 80033fc: 080033c5 .word 0x080033c5 + 8003400: 080033c5 .word 0x080033c5 + 8003404: 080033c5 .word 0x080033c5 + 8003408: 08003547 .word 0x08003547 + 800340c: 08003473 .word 0x08003473 + 8003410: 08003501 .word 0x08003501 + 8003414: 080033c5 .word 0x080033c5 + 8003418: 080033c5 .word 0x080033c5 + 800341c: 08003569 .word 0x08003569 + 8003420: 080033c5 .word 0x080033c5 + 8003424: 08003473 .word 0x08003473 + 8003428: 080033c5 .word 0x080033c5 + 800342c: 080033c5 .word 0x080033c5 + 8003430: 08003509 .word 0x08003509 + 8003434: 6833 ldr r3, [r6, #0] + 8003436: 1d1a adds r2, r3, #4 + 8003438: 681b ldr r3, [r3, #0] + 800343a: 6032 str r2, [r6, #0] + 800343c: f104 0642 add.w r6, r4, #66 @ 0x42 + 8003440: f884 3042 strb.w r3, [r4, #66] @ 0x42 + 8003444: 2301 movs r3, #1 + 8003446: e09c b.n 8003582 <_printf_i+0x1e6> + 8003448: 6833 ldr r3, [r6, #0] + 800344a: 6820 ldr r0, [r4, #0] + 800344c: 1d19 adds r1, r3, #4 + 800344e: 6031 str r1, [r6, #0] + 8003450: 0606 lsls r6, r0, #24 + 8003452: d501 bpl.n 8003458 <_printf_i+0xbc> + 8003454: 681d ldr r5, [r3, #0] + 8003456: e003 b.n 8003460 <_printf_i+0xc4> + 8003458: 0645 lsls r5, r0, #25 + 800345a: d5fb bpl.n 8003454 <_printf_i+0xb8> + 800345c: f9b3 5000 ldrsh.w r5, [r3] + 8003460: 2d00 cmp r5, #0 + 8003462: da03 bge.n 800346c <_printf_i+0xd0> + 8003464: 232d movs r3, #45 @ 0x2d + 8003466: 426d negs r5, r5 + 8003468: f884 3043 strb.w r3, [r4, #67] @ 0x43 + 800346c: 4858 ldr r0, [pc, #352] @ (80035d0 <_printf_i+0x234>) + 800346e: 230a movs r3, #10 + 8003470: e011 b.n 8003496 <_printf_i+0xfa> + 8003472: 6821 ldr r1, [r4, #0] + 8003474: 6833 ldr r3, [r6, #0] + 8003476: 0608 lsls r0, r1, #24 + 8003478: f853 5b04 ldr.w r5, [r3], #4 + 800347c: d402 bmi.n 8003484 <_printf_i+0xe8> + 800347e: 0649 lsls r1, r1, #25 + 8003480: bf48 it mi + 8003482: b2ad uxthmi r5, r5 + 8003484: 2f6f cmp r7, #111 @ 0x6f + 8003486: 4852 ldr r0, [pc, #328] @ (80035d0 <_printf_i+0x234>) + 8003488: 6033 str r3, [r6, #0] + 800348a: bf14 ite ne + 800348c: 230a movne r3, #10 + 800348e: 2308 moveq r3, #8 + 8003490: 2100 movs r1, #0 + 8003492: f884 1043 strb.w r1, [r4, #67] @ 0x43 + 8003496: 6866 ldr r6, [r4, #4] + 8003498: 60a6 str r6, [r4, #8] + 800349a: 2e00 cmp r6, #0 + 800349c: db05 blt.n 80034aa <_printf_i+0x10e> + 800349e: 6821 ldr r1, [r4, #0] + 80034a0: 432e orrs r6, r5 + 80034a2: f021 0104 bic.w r1, r1, #4 + 80034a6: 6021 str r1, [r4, #0] + 80034a8: d04b beq.n 8003542 <_printf_i+0x1a6> + 80034aa: 4616 mov r6, r2 + 80034ac: fbb5 f1f3 udiv r1, r5, r3 + 80034b0: fb03 5711 mls r7, r3, r1, r5 + 80034b4: 5dc7 ldrb r7, [r0, r7] + 80034b6: f806 7d01 strb.w r7, [r6, #-1]! + 80034ba: 462f mov r7, r5 + 80034bc: 42bb cmp r3, r7 + 80034be: 460d mov r5, r1 + 80034c0: d9f4 bls.n 80034ac <_printf_i+0x110> + 80034c2: 2b08 cmp r3, #8 + 80034c4: d10b bne.n 80034de <_printf_i+0x142> + 80034c6: 6823 ldr r3, [r4, #0] + 80034c8: 07df lsls r7, r3, #31 + 80034ca: d508 bpl.n 80034de <_printf_i+0x142> + 80034cc: 6923 ldr r3, [r4, #16] + 80034ce: 6861 ldr r1, [r4, #4] + 80034d0: 4299 cmp r1, r3 + 80034d2: bfde ittt le + 80034d4: 2330 movle r3, #48 @ 0x30 + 80034d6: f806 3c01 strble.w r3, [r6, #-1] + 80034da: f106 36ff addle.w r6, r6, #4294967295 + 80034de: 1b92 subs r2, r2, r6 + 80034e0: 6122 str r2, [r4, #16] + 80034e2: f8cd a000 str.w sl, [sp] + 80034e6: 464b mov r3, r9 + 80034e8: aa03 add r2, sp, #12 + 80034ea: 4621 mov r1, r4 + 80034ec: 4640 mov r0, r8 + 80034ee: f7ff fee7 bl 80032c0 <_printf_common> + 80034f2: 3001 adds r0, #1 + 80034f4: d14a bne.n 800358c <_printf_i+0x1f0> + 80034f6: f04f 30ff mov.w r0, #4294967295 + 80034fa: b004 add sp, #16 + 80034fc: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8003500: 6823 ldr r3, [r4, #0] + 8003502: f043 0320 orr.w r3, r3, #32 + 8003506: 6023 str r3, [r4, #0] + 8003508: 4832 ldr r0, [pc, #200] @ (80035d4 <_printf_i+0x238>) + 800350a: 2778 movs r7, #120 @ 0x78 + 800350c: f884 7045 strb.w r7, [r4, #69] @ 0x45 + 8003510: 6823 ldr r3, [r4, #0] + 8003512: 6831 ldr r1, [r6, #0] + 8003514: 061f lsls r7, r3, #24 + 8003516: f851 5b04 ldr.w r5, [r1], #4 + 800351a: d402 bmi.n 8003522 <_printf_i+0x186> + 800351c: 065f lsls r7, r3, #25 + 800351e: bf48 it mi + 8003520: b2ad uxthmi r5, r5 + 8003522: 6031 str r1, [r6, #0] + 8003524: 07d9 lsls r1, r3, #31 + 8003526: bf44 itt mi + 8003528: f043 0320 orrmi.w r3, r3, #32 + 800352c: 6023 strmi r3, [r4, #0] + 800352e: b11d cbz r5, 8003538 <_printf_i+0x19c> + 8003530: 2310 movs r3, #16 + 8003532: e7ad b.n 8003490 <_printf_i+0xf4> + 8003534: 4826 ldr r0, [pc, #152] @ (80035d0 <_printf_i+0x234>) + 8003536: e7e9 b.n 800350c <_printf_i+0x170> + 8003538: 6823 ldr r3, [r4, #0] + 800353a: f023 0320 bic.w r3, r3, #32 + 800353e: 6023 str r3, [r4, #0] + 8003540: e7f6 b.n 8003530 <_printf_i+0x194> + 8003542: 4616 mov r6, r2 + 8003544: e7bd b.n 80034c2 <_printf_i+0x126> + 8003546: 6833 ldr r3, [r6, #0] + 8003548: 6825 ldr r5, [r4, #0] + 800354a: 6961 ldr r1, [r4, #20] + 800354c: 1d18 adds r0, r3, #4 + 800354e: 6030 str r0, [r6, #0] + 8003550: 062e lsls r6, r5, #24 + 8003552: 681b ldr r3, [r3, #0] + 8003554: d501 bpl.n 800355a <_printf_i+0x1be> + 8003556: 6019 str r1, [r3, #0] + 8003558: e002 b.n 8003560 <_printf_i+0x1c4> + 800355a: 0668 lsls r0, r5, #25 + 800355c: d5fb bpl.n 8003556 <_printf_i+0x1ba> + 800355e: 8019 strh r1, [r3, #0] + 8003560: 2300 movs r3, #0 + 8003562: 6123 str r3, [r4, #16] + 8003564: 4616 mov r6, r2 + 8003566: e7bc b.n 80034e2 <_printf_i+0x146> + 8003568: 6833 ldr r3, [r6, #0] + 800356a: 1d1a adds r2, r3, #4 + 800356c: 6032 str r2, [r6, #0] + 800356e: 681e ldr r6, [r3, #0] + 8003570: 6862 ldr r2, [r4, #4] + 8003572: 2100 movs r1, #0 + 8003574: 4630 mov r0, r6 + 8003576: f7fc fe33 bl 80001e0 + 800357a: b108 cbz r0, 8003580 <_printf_i+0x1e4> + 800357c: 1b80 subs r0, r0, r6 + 800357e: 6060 str r0, [r4, #4] + 8003580: 6863 ldr r3, [r4, #4] + 8003582: 6123 str r3, [r4, #16] + 8003584: 2300 movs r3, #0 + 8003586: f884 3043 strb.w r3, [r4, #67] @ 0x43 + 800358a: e7aa b.n 80034e2 <_printf_i+0x146> + 800358c: 6923 ldr r3, [r4, #16] + 800358e: 4632 mov r2, r6 + 8003590: 4649 mov r1, r9 + 8003592: 4640 mov r0, r8 + 8003594: 47d0 blx sl + 8003596: 3001 adds r0, #1 + 8003598: d0ad beq.n 80034f6 <_printf_i+0x15a> + 800359a: 6823 ldr r3, [r4, #0] + 800359c: 079b lsls r3, r3, #30 + 800359e: d413 bmi.n 80035c8 <_printf_i+0x22c> + 80035a0: 68e0 ldr r0, [r4, #12] + 80035a2: 9b03 ldr r3, [sp, #12] + 80035a4: 4298 cmp r0, r3 + 80035a6: bfb8 it lt + 80035a8: 4618 movlt r0, r3 + 80035aa: e7a6 b.n 80034fa <_printf_i+0x15e> + 80035ac: 2301 movs r3, #1 + 80035ae: 4632 mov r2, r6 + 80035b0: 4649 mov r1, r9 + 80035b2: 4640 mov r0, r8 + 80035b4: 47d0 blx sl + 80035b6: 3001 adds r0, #1 + 80035b8: d09d beq.n 80034f6 <_printf_i+0x15a> + 80035ba: 3501 adds r5, #1 + 80035bc: 68e3 ldr r3, [r4, #12] + 80035be: 9903 ldr r1, [sp, #12] + 80035c0: 1a5b subs r3, r3, r1 + 80035c2: 42ab cmp r3, r5 + 80035c4: dcf2 bgt.n 80035ac <_printf_i+0x210> + 80035c6: e7eb b.n 80035a0 <_printf_i+0x204> + 80035c8: 2500 movs r5, #0 + 80035ca: f104 0619 add.w r6, r4, #25 + 80035ce: e7f5 b.n 80035bc <_printf_i+0x220> + 80035d0: 0800569a .word 0x0800569a + 80035d4: 080056ab .word 0x080056ab -08007f28 <_close_r>: - 8007f28: b538 push {r3, r4, r5, lr} - 8007f2a: 4d06 ldr r5, [pc, #24] @ (8007f44 <_close_r+0x1c>) - 8007f2c: 2300 movs r3, #0 - 8007f2e: 4604 mov r4, r0 - 8007f30: 4608 mov r0, r1 - 8007f32: 602b str r3, [r5, #0] - 8007f34: f7fb ffdb bl 8003eee <_close> - 8007f38: 1c43 adds r3, r0, #1 - 8007f3a: d102 bne.n 8007f42 <_close_r+0x1a> - 8007f3c: 682b ldr r3, [r5, #0] - 8007f3e: b103 cbz r3, 8007f42 <_close_r+0x1a> - 8007f40: 6023 str r3, [r4, #0] - 8007f42: bd38 pop {r3, r4, r5, pc} - 8007f44: 200004e0 .word 0x200004e0 +080035d8 : + 80035d8: 2300 movs r3, #0 + 80035da: b510 push {r4, lr} + 80035dc: 4604 mov r4, r0 + 80035de: e9c0 3300 strd r3, r3, [r0] + 80035e2: e9c0 3304 strd r3, r3, [r0, #16] + 80035e6: 6083 str r3, [r0, #8] + 80035e8: 8181 strh r1, [r0, #12] + 80035ea: 6643 str r3, [r0, #100] @ 0x64 + 80035ec: 81c2 strh r2, [r0, #14] + 80035ee: 6183 str r3, [r0, #24] + 80035f0: 4619 mov r1, r3 + 80035f2: 2208 movs r2, #8 + 80035f4: 305c adds r0, #92 @ 0x5c + 80035f6: f000 f8f4 bl 80037e2 + 80035fa: 4b0d ldr r3, [pc, #52] @ (8003630 ) + 80035fc: 6263 str r3, [r4, #36] @ 0x24 + 80035fe: 4b0d ldr r3, [pc, #52] @ (8003634 ) + 8003600: 62a3 str r3, [r4, #40] @ 0x28 + 8003602: 4b0d ldr r3, [pc, #52] @ (8003638 ) + 8003604: 62e3 str r3, [r4, #44] @ 0x2c + 8003606: 4b0d ldr r3, [pc, #52] @ (800363c ) + 8003608: 6323 str r3, [r4, #48] @ 0x30 + 800360a: 4b0d ldr r3, [pc, #52] @ (8003640 ) + 800360c: 6224 str r4, [r4, #32] + 800360e: 429c cmp r4, r3 + 8003610: d006 beq.n 8003620 + 8003612: f103 0268 add.w r2, r3, #104 @ 0x68 + 8003616: 4294 cmp r4, r2 + 8003618: d002 beq.n 8003620 + 800361a: 33d0 adds r3, #208 @ 0xd0 + 800361c: 429c cmp r4, r3 + 800361e: d105 bne.n 800362c + 8003620: f104 0058 add.w r0, r4, #88 @ 0x58 + 8003624: e8bd 4010 ldmia.w sp!, {r4, lr} + 8003628: f000 b958 b.w 80038dc <__retarget_lock_init_recursive> + 800362c: bd10 pop {r4, pc} + 800362e: bf00 nop + 8003630: 0800375d .word 0x0800375d + 8003634: 0800377f .word 0x0800377f + 8003638: 080037b7 .word 0x080037b7 + 800363c: 080037db .word 0x080037db + 8003640: 20000660 .word 0x20000660 -08007f48 <_lseek_r>: - 8007f48: b538 push {r3, r4, r5, lr} - 8007f4a: 4d07 ldr r5, [pc, #28] @ (8007f68 <_lseek_r+0x20>) - 8007f4c: 4604 mov r4, r0 - 8007f4e: 4608 mov r0, r1 - 8007f50: 4611 mov r1, r2 - 8007f52: 2200 movs r2, #0 - 8007f54: 602a str r2, [r5, #0] - 8007f56: 461a mov r2, r3 - 8007f58: f7fb fff0 bl 8003f3c <_lseek> - 8007f5c: 1c43 adds r3, r0, #1 - 8007f5e: d102 bne.n 8007f66 <_lseek_r+0x1e> - 8007f60: 682b ldr r3, [r5, #0] - 8007f62: b103 cbz r3, 8007f66 <_lseek_r+0x1e> - 8007f64: 6023 str r3, [r4, #0] - 8007f66: bd38 pop {r3, r4, r5, pc} - 8007f68: 200004e0 .word 0x200004e0 +08003644 : + 8003644: 4a02 ldr r2, [pc, #8] @ (8003650 ) + 8003646: 4903 ldr r1, [pc, #12] @ (8003654 ) + 8003648: 4803 ldr r0, [pc, #12] @ (8003658 ) + 800364a: f000 b869 b.w 8003720 <_fwalk_sglue> + 800364e: bf00 nop + 8003650: 2000000c .word 0x2000000c + 8003654: 08004f95 .word 0x08004f95 + 8003658: 2000001c .word 0x2000001c -08007f6c <_read_r>: - 8007f6c: b538 push {r3, r4, r5, lr} - 8007f6e: 4d07 ldr r5, [pc, #28] @ (8007f8c <_read_r+0x20>) - 8007f70: 4604 mov r4, r0 - 8007f72: 4608 mov r0, r1 - 8007f74: 4611 mov r1, r2 - 8007f76: 2200 movs r2, #0 - 8007f78: 602a str r2, [r5, #0] - 8007f7a: 461a mov r2, r3 - 8007f7c: f7fb ff7e bl 8003e7c <_read> - 8007f80: 1c43 adds r3, r0, #1 - 8007f82: d102 bne.n 8007f8a <_read_r+0x1e> - 8007f84: 682b ldr r3, [r5, #0] - 8007f86: b103 cbz r3, 8007f8a <_read_r+0x1e> - 8007f88: 6023 str r3, [r4, #0] - 8007f8a: bd38 pop {r3, r4, r5, pc} - 8007f8c: 200004e0 .word 0x200004e0 +0800365c : + 800365c: 6841 ldr r1, [r0, #4] + 800365e: 4b0c ldr r3, [pc, #48] @ (8003690 ) + 8003660: 4299 cmp r1, r3 + 8003662: b510 push {r4, lr} + 8003664: 4604 mov r4, r0 + 8003666: d001 beq.n 800366c + 8003668: f001 fc94 bl 8004f94 <_fflush_r> + 800366c: 68a1 ldr r1, [r4, #8] + 800366e: 4b09 ldr r3, [pc, #36] @ (8003694 ) + 8003670: 4299 cmp r1, r3 + 8003672: d002 beq.n 800367a + 8003674: 4620 mov r0, r4 + 8003676: f001 fc8d bl 8004f94 <_fflush_r> + 800367a: 68e1 ldr r1, [r4, #12] + 800367c: 4b06 ldr r3, [pc, #24] @ (8003698 ) + 800367e: 4299 cmp r1, r3 + 8003680: d004 beq.n 800368c + 8003682: 4620 mov r0, r4 + 8003684: e8bd 4010 ldmia.w sp!, {r4, lr} + 8003688: f001 bc84 b.w 8004f94 <_fflush_r> + 800368c: bd10 pop {r4, pc} + 800368e: bf00 nop + 8003690: 20000660 .word 0x20000660 + 8003694: 200006c8 .word 0x200006c8 + 8003698: 20000730 .word 0x20000730 -08007f90 <_write_r>: - 8007f90: b538 push {r3, r4, r5, lr} - 8007f92: 4d07 ldr r5, [pc, #28] @ (8007fb0 <_write_r+0x20>) - 8007f94: 4604 mov r4, r0 - 8007f96: 4608 mov r0, r1 - 8007f98: 4611 mov r1, r2 - 8007f9a: 2200 movs r2, #0 - 8007f9c: 602a str r2, [r5, #0] - 8007f9e: 461a mov r2, r3 - 8007fa0: f7fb ff89 bl 8003eb6 <_write> - 8007fa4: 1c43 adds r3, r0, #1 - 8007fa6: d102 bne.n 8007fae <_write_r+0x1e> - 8007fa8: 682b ldr r3, [r5, #0] - 8007faa: b103 cbz r3, 8007fae <_write_r+0x1e> - 8007fac: 6023 str r3, [r4, #0] - 8007fae: bd38 pop {r3, r4, r5, pc} - 8007fb0: 200004e0 .word 0x200004e0 +0800369c : + 800369c: b510 push {r4, lr} + 800369e: 4b0b ldr r3, [pc, #44] @ (80036cc ) + 80036a0: 4c0b ldr r4, [pc, #44] @ (80036d0 ) + 80036a2: 4a0c ldr r2, [pc, #48] @ (80036d4 ) + 80036a4: 601a str r2, [r3, #0] + 80036a6: 4620 mov r0, r4 + 80036a8: 2200 movs r2, #0 + 80036aa: 2104 movs r1, #4 + 80036ac: f7ff ff94 bl 80035d8 + 80036b0: f104 0068 add.w r0, r4, #104 @ 0x68 + 80036b4: 2201 movs r2, #1 + 80036b6: 2109 movs r1, #9 + 80036b8: f7ff ff8e bl 80035d8 + 80036bc: f104 00d0 add.w r0, r4, #208 @ 0xd0 + 80036c0: 2202 movs r2, #2 + 80036c2: e8bd 4010 ldmia.w sp!, {r4, lr} + 80036c6: 2112 movs r1, #18 + 80036c8: f7ff bf86 b.w 80035d8 + 80036cc: 20000798 .word 0x20000798 + 80036d0: 20000660 .word 0x20000660 + 80036d4: 08003645 .word 0x08003645 -08007fb4 <__errno>: - 8007fb4: 4b01 ldr r3, [pc, #4] @ (8007fbc <__errno+0x8>) - 8007fb6: 6818 ldr r0, [r3, #0] - 8007fb8: 4770 bx lr - 8007fba: bf00 nop - 8007fbc: 20000018 .word 0x20000018 +080036d8 <__sfp_lock_acquire>: + 80036d8: 4801 ldr r0, [pc, #4] @ (80036e0 <__sfp_lock_acquire+0x8>) + 80036da: f000 b900 b.w 80038de <__retarget_lock_acquire_recursive> + 80036de: bf00 nop + 80036e0: 200007a1 .word 0x200007a1 -08007fc0 <__libc_init_array>: - 8007fc0: b570 push {r4, r5, r6, lr} - 8007fc2: 4d0d ldr r5, [pc, #52] @ (8007ff8 <__libc_init_array+0x38>) - 8007fc4: 4c0d ldr r4, [pc, #52] @ (8007ffc <__libc_init_array+0x3c>) - 8007fc6: 1b64 subs r4, r4, r5 - 8007fc8: 10a4 asrs r4, r4, #2 - 8007fca: 2600 movs r6, #0 - 8007fcc: 42a6 cmp r6, r4 - 8007fce: d109 bne.n 8007fe4 <__libc_init_array+0x24> - 8007fd0: 4d0b ldr r5, [pc, #44] @ (8008000 <__libc_init_array+0x40>) - 8007fd2: 4c0c ldr r4, [pc, #48] @ (8008004 <__libc_init_array+0x44>) - 8007fd4: f003 fb9e bl 800b714 <_init> - 8007fd8: 1b64 subs r4, r4, r5 - 8007fda: 10a4 asrs r4, r4, #2 - 8007fdc: 2600 movs r6, #0 - 8007fde: 42a6 cmp r6, r4 - 8007fe0: d105 bne.n 8007fee <__libc_init_array+0x2e> - 8007fe2: bd70 pop {r4, r5, r6, pc} - 8007fe4: f855 3b04 ldr.w r3, [r5], #4 - 8007fe8: 4798 blx r3 - 8007fea: 3601 adds r6, #1 - 8007fec: e7ee b.n 8007fcc <__libc_init_array+0xc> - 8007fee: f855 3b04 ldr.w r3, [r5], #4 - 8007ff2: 4798 blx r3 - 8007ff4: 3601 adds r6, #1 - 8007ff6: e7f2 b.n 8007fde <__libc_init_array+0x1e> - 8007ff8: 0800c124 .word 0x0800c124 - 8007ffc: 0800c124 .word 0x0800c124 - 8008000: 0800c124 .word 0x0800c124 - 8008004: 0800c128 .word 0x0800c128 +080036e4 <__sfp_lock_release>: + 80036e4: 4801 ldr r0, [pc, #4] @ (80036ec <__sfp_lock_release+0x8>) + 80036e6: f000 b8fb b.w 80038e0 <__retarget_lock_release_recursive> + 80036ea: bf00 nop + 80036ec: 200007a1 .word 0x200007a1 -08008008 <__retarget_lock_init_recursive>: - 8008008: 4770 bx lr +080036f0 <__sinit>: + 80036f0: b510 push {r4, lr} + 80036f2: 4604 mov r4, r0 + 80036f4: f7ff fff0 bl 80036d8 <__sfp_lock_acquire> + 80036f8: 6a23 ldr r3, [r4, #32] + 80036fa: b11b cbz r3, 8003704 <__sinit+0x14> + 80036fc: e8bd 4010 ldmia.w sp!, {r4, lr} + 8003700: f7ff bff0 b.w 80036e4 <__sfp_lock_release> + 8003704: 4b04 ldr r3, [pc, #16] @ (8003718 <__sinit+0x28>) + 8003706: 6223 str r3, [r4, #32] + 8003708: 4b04 ldr r3, [pc, #16] @ (800371c <__sinit+0x2c>) + 800370a: 681b ldr r3, [r3, #0] + 800370c: 2b00 cmp r3, #0 + 800370e: d1f5 bne.n 80036fc <__sinit+0xc> + 8003710: f7ff ffc4 bl 800369c + 8003714: e7f2 b.n 80036fc <__sinit+0xc> + 8003716: bf00 nop + 8003718: 0800365d .word 0x0800365d + 800371c: 20000798 .word 0x20000798 -0800800a <__retarget_lock_acquire_recursive>: - 800800a: 4770 bx lr +08003720 <_fwalk_sglue>: + 8003720: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + 8003724: 4607 mov r7, r0 + 8003726: 4688 mov r8, r1 + 8003728: 4614 mov r4, r2 + 800372a: 2600 movs r6, #0 + 800372c: e9d4 9501 ldrd r9, r5, [r4, #4] + 8003730: f1b9 0901 subs.w r9, r9, #1 + 8003734: d505 bpl.n 8003742 <_fwalk_sglue+0x22> + 8003736: 6824 ldr r4, [r4, #0] + 8003738: 2c00 cmp r4, #0 + 800373a: d1f7 bne.n 800372c <_fwalk_sglue+0xc> + 800373c: 4630 mov r0, r6 + 800373e: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} + 8003742: 89ab ldrh r3, [r5, #12] + 8003744: 2b01 cmp r3, #1 + 8003746: d907 bls.n 8003758 <_fwalk_sglue+0x38> + 8003748: f9b5 300e ldrsh.w r3, [r5, #14] + 800374c: 3301 adds r3, #1 + 800374e: d003 beq.n 8003758 <_fwalk_sglue+0x38> + 8003750: 4629 mov r1, r5 + 8003752: 4638 mov r0, r7 + 8003754: 47c0 blx r8 + 8003756: 4306 orrs r6, r0 + 8003758: 3568 adds r5, #104 @ 0x68 + 800375a: e7e9 b.n 8003730 <_fwalk_sglue+0x10> -0800800c <__retarget_lock_release_recursive>: - 800800c: 4770 bx lr +0800375c <__sread>: + 800375c: b510 push {r4, lr} + 800375e: 460c mov r4, r1 + 8003760: f9b1 100e ldrsh.w r1, [r1, #14] + 8003764: f000 f86c bl 8003840 <_read_r> + 8003768: 2800 cmp r0, #0 + 800376a: bfab itete ge + 800376c: 6d63 ldrge r3, [r4, #84] @ 0x54 + 800376e: 89a3 ldrhlt r3, [r4, #12] + 8003770: 181b addge r3, r3, r0 + 8003772: f423 5380 biclt.w r3, r3, #4096 @ 0x1000 + 8003776: bfac ite ge + 8003778: 6563 strge r3, [r4, #84] @ 0x54 + 800377a: 81a3 strhlt r3, [r4, #12] + 800377c: bd10 pop {r4, pc} -0800800e : - 800800e: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8008012: 6903 ldr r3, [r0, #16] - 8008014: 690c ldr r4, [r1, #16] - 8008016: 42a3 cmp r3, r4 - 8008018: 4607 mov r7, r0 - 800801a: db7e blt.n 800811a - 800801c: 3c01 subs r4, #1 - 800801e: f101 0814 add.w r8, r1, #20 - 8008022: 00a3 lsls r3, r4, #2 - 8008024: f100 0514 add.w r5, r0, #20 - 8008028: 9300 str r3, [sp, #0] - 800802a: eb05 0384 add.w r3, r5, r4, lsl #2 - 800802e: 9301 str r3, [sp, #4] - 8008030: f858 3024 ldr.w r3, [r8, r4, lsl #2] - 8008034: f855 2024 ldr.w r2, [r5, r4, lsl #2] - 8008038: 3301 adds r3, #1 - 800803a: 429a cmp r2, r3 - 800803c: eb08 0984 add.w r9, r8, r4, lsl #2 - 8008040: fbb2 f6f3 udiv r6, r2, r3 - 8008044: d32e bcc.n 80080a4 - 8008046: f04f 0a00 mov.w sl, #0 - 800804a: 46c4 mov ip, r8 - 800804c: 46ae mov lr, r5 - 800804e: 46d3 mov fp, sl - 8008050: f85c 3b04 ldr.w r3, [ip], #4 - 8008054: b298 uxth r0, r3 - 8008056: fb06 a000 mla r0, r6, r0, sl - 800805a: 0c02 lsrs r2, r0, #16 - 800805c: 0c1b lsrs r3, r3, #16 - 800805e: fb06 2303 mla r3, r6, r3, r2 - 8008062: f8de 2000 ldr.w r2, [lr] - 8008066: b280 uxth r0, r0 - 8008068: b292 uxth r2, r2 - 800806a: 1a12 subs r2, r2, r0 - 800806c: 445a add r2, fp - 800806e: f8de 0000 ldr.w r0, [lr] - 8008072: ea4f 4a13 mov.w sl, r3, lsr #16 - 8008076: b29b uxth r3, r3 - 8008078: ebc3 4322 rsb r3, r3, r2, asr #16 - 800807c: eb03 4310 add.w r3, r3, r0, lsr #16 - 8008080: b292 uxth r2, r2 - 8008082: ea42 4203 orr.w r2, r2, r3, lsl #16 - 8008086: 45e1 cmp r9, ip - 8008088: f84e 2b04 str.w r2, [lr], #4 - 800808c: ea4f 4b23 mov.w fp, r3, asr #16 - 8008090: d2de bcs.n 8008050 - 8008092: 9b00 ldr r3, [sp, #0] - 8008094: 58eb ldr r3, [r5, r3] - 8008096: b92b cbnz r3, 80080a4 - 8008098: 9b01 ldr r3, [sp, #4] - 800809a: 3b04 subs r3, #4 - 800809c: 429d cmp r5, r3 - 800809e: 461a mov r2, r3 - 80080a0: d32f bcc.n 8008102 - 80080a2: 613c str r4, [r7, #16] - 80080a4: 4638 mov r0, r7 - 80080a6: f001 f97d bl 80093a4 <__mcmp> - 80080aa: 2800 cmp r0, #0 - 80080ac: db25 blt.n 80080fa - 80080ae: 4629 mov r1, r5 - 80080b0: 2000 movs r0, #0 - 80080b2: f858 2b04 ldr.w r2, [r8], #4 - 80080b6: f8d1 c000 ldr.w ip, [r1] - 80080ba: fa1f fe82 uxth.w lr, r2 - 80080be: fa1f f38c uxth.w r3, ip - 80080c2: eba3 030e sub.w r3, r3, lr - 80080c6: 4403 add r3, r0 - 80080c8: 0c12 lsrs r2, r2, #16 - 80080ca: ebc2 4223 rsb r2, r2, r3, asr #16 - 80080ce: eb02 421c add.w r2, r2, ip, lsr #16 - 80080d2: b29b uxth r3, r3 - 80080d4: ea43 4302 orr.w r3, r3, r2, lsl #16 - 80080d8: 45c1 cmp r9, r8 - 80080da: f841 3b04 str.w r3, [r1], #4 - 80080de: ea4f 4022 mov.w r0, r2, asr #16 - 80080e2: d2e6 bcs.n 80080b2 - 80080e4: f855 2024 ldr.w r2, [r5, r4, lsl #2] - 80080e8: eb05 0384 add.w r3, r5, r4, lsl #2 - 80080ec: b922 cbnz r2, 80080f8 - 80080ee: 3b04 subs r3, #4 - 80080f0: 429d cmp r5, r3 - 80080f2: 461a mov r2, r3 - 80080f4: d30b bcc.n 800810e - 80080f6: 613c str r4, [r7, #16] - 80080f8: 3601 adds r6, #1 - 80080fa: 4630 mov r0, r6 - 80080fc: b003 add sp, #12 - 80080fe: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8008102: 6812 ldr r2, [r2, #0] - 8008104: 3b04 subs r3, #4 - 8008106: 2a00 cmp r2, #0 - 8008108: d1cb bne.n 80080a2 - 800810a: 3c01 subs r4, #1 - 800810c: e7c6 b.n 800809c - 800810e: 6812 ldr r2, [r2, #0] - 8008110: 3b04 subs r3, #4 - 8008112: 2a00 cmp r2, #0 - 8008114: d1ef bne.n 80080f6 - 8008116: 3c01 subs r4, #1 - 8008118: e7ea b.n 80080f0 - 800811a: 2000 movs r0, #0 - 800811c: e7ee b.n 80080fc +0800377e <__swrite>: + 800377e: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} + 8003782: 461f mov r7, r3 + 8003784: 898b ldrh r3, [r1, #12] + 8003786: 05db lsls r3, r3, #23 + 8003788: 4605 mov r5, r0 + 800378a: 460c mov r4, r1 + 800378c: 4616 mov r6, r2 + 800378e: d505 bpl.n 800379c <__swrite+0x1e> + 8003790: f9b1 100e ldrsh.w r1, [r1, #14] + 8003794: 2302 movs r3, #2 + 8003796: 2200 movs r2, #0 + 8003798: f000 f840 bl 800381c <_lseek_r> + 800379c: 89a3 ldrh r3, [r4, #12] + 800379e: f9b4 100e ldrsh.w r1, [r4, #14] + 80037a2: f423 5380 bic.w r3, r3, #4096 @ 0x1000 + 80037a6: 81a3 strh r3, [r4, #12] + 80037a8: 4632 mov r2, r6 + 80037aa: 463b mov r3, r7 + 80037ac: 4628 mov r0, r5 + 80037ae: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} + 80037b2: f000 b857 b.w 8003864 <_write_r> + +080037b6 <__sseek>: + 80037b6: b510 push {r4, lr} + 80037b8: 460c mov r4, r1 + 80037ba: f9b1 100e ldrsh.w r1, [r1, #14] + 80037be: f000 f82d bl 800381c <_lseek_r> + 80037c2: 1c43 adds r3, r0, #1 + 80037c4: 89a3 ldrh r3, [r4, #12] + 80037c6: bf15 itete ne + 80037c8: 6560 strne r0, [r4, #84] @ 0x54 + 80037ca: f423 5380 biceq.w r3, r3, #4096 @ 0x1000 + 80037ce: f443 5380 orrne.w r3, r3, #4096 @ 0x1000 + 80037d2: 81a3 strheq r3, [r4, #12] + 80037d4: bf18 it ne + 80037d6: 81a3 strhne r3, [r4, #12] + 80037d8: bd10 pop {r4, pc} + +080037da <__sclose>: + 80037da: f9b1 100e ldrsh.w r1, [r1, #14] + 80037de: f000 b80d b.w 80037fc <_close_r> + +080037e2 : + 80037e2: 4402 add r2, r0 + 80037e4: 4603 mov r3, r0 + 80037e6: 4293 cmp r3, r2 + 80037e8: d100 bne.n 80037ec + 80037ea: 4770 bx lr + 80037ec: f803 1b01 strb.w r1, [r3], #1 + 80037f0: e7f9 b.n 80037e6 ... -08008120 <_dtoa_r>: - 8008120: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8008124: 69c7 ldr r7, [r0, #28] - 8008126: b097 sub sp, #92 @ 0x5c - 8008128: ed8d 0b04 vstr d0, [sp, #16] - 800812c: ec55 4b10 vmov r4, r5, d0 - 8008130: 9e20 ldr r6, [sp, #128] @ 0x80 - 8008132: 9107 str r1, [sp, #28] - 8008134: 4681 mov r9, r0 - 8008136: 920c str r2, [sp, #48] @ 0x30 - 8008138: 9311 str r3, [sp, #68] @ 0x44 - 800813a: b97f cbnz r7, 800815c <_dtoa_r+0x3c> - 800813c: 2010 movs r0, #16 - 800813e: f000 fe09 bl 8008d54 - 8008142: 4602 mov r2, r0 - 8008144: f8c9 001c str.w r0, [r9, #28] - 8008148: b920 cbnz r0, 8008154 <_dtoa_r+0x34> - 800814a: 4ba9 ldr r3, [pc, #676] @ (80083f0 <_dtoa_r+0x2d0>) - 800814c: 21ef movs r1, #239 @ 0xef - 800814e: 48a9 ldr r0, [pc, #676] @ (80083f4 <_dtoa_r+0x2d4>) - 8008150: f001 fe42 bl 8009dd8 <__assert_func> - 8008154: e9c0 7701 strd r7, r7, [r0, #4] - 8008158: 6007 str r7, [r0, #0] - 800815a: 60c7 str r7, [r0, #12] - 800815c: f8d9 301c ldr.w r3, [r9, #28] - 8008160: 6819 ldr r1, [r3, #0] - 8008162: b159 cbz r1, 800817c <_dtoa_r+0x5c> - 8008164: 685a ldr r2, [r3, #4] - 8008166: 604a str r2, [r1, #4] - 8008168: 2301 movs r3, #1 - 800816a: 4093 lsls r3, r2 - 800816c: 608b str r3, [r1, #8] - 800816e: 4648 mov r0, r9 - 8008170: f000 fee6 bl 8008f40 <_Bfree> - 8008174: f8d9 301c ldr.w r3, [r9, #28] - 8008178: 2200 movs r2, #0 - 800817a: 601a str r2, [r3, #0] - 800817c: 1e2b subs r3, r5, #0 - 800817e: bfb9 ittee lt - 8008180: f023 4300 biclt.w r3, r3, #2147483648 @ 0x80000000 - 8008184: 9305 strlt r3, [sp, #20] - 8008186: 2300 movge r3, #0 - 8008188: 6033 strge r3, [r6, #0] - 800818a: 9f05 ldr r7, [sp, #20] - 800818c: 4b9a ldr r3, [pc, #616] @ (80083f8 <_dtoa_r+0x2d8>) - 800818e: bfbc itt lt - 8008190: 2201 movlt r2, #1 - 8008192: 6032 strlt r2, [r6, #0] - 8008194: 43bb bics r3, r7 - 8008196: d112 bne.n 80081be <_dtoa_r+0x9e> - 8008198: 9a11 ldr r2, [sp, #68] @ 0x44 - 800819a: f242 730f movw r3, #9999 @ 0x270f - 800819e: 6013 str r3, [r2, #0] - 80081a0: f3c7 0313 ubfx r3, r7, #0, #20 - 80081a4: 4323 orrs r3, r4 - 80081a6: f000 855a beq.w 8008c5e <_dtoa_r+0xb3e> - 80081aa: 9b21 ldr r3, [sp, #132] @ 0x84 - 80081ac: f8df a25c ldr.w sl, [pc, #604] @ 800840c <_dtoa_r+0x2ec> - 80081b0: 2b00 cmp r3, #0 - 80081b2: f000 855c beq.w 8008c6e <_dtoa_r+0xb4e> - 80081b6: f10a 0303 add.w r3, sl, #3 - 80081ba: f000 bd56 b.w 8008c6a <_dtoa_r+0xb4a> - 80081be: ed9d 7b04 vldr d7, [sp, #16] - 80081c2: 2200 movs r2, #0 - 80081c4: ec51 0b17 vmov r0, r1, d7 - 80081c8: 2300 movs r3, #0 - 80081ca: ed8d 7b0a vstr d7, [sp, #40] @ 0x28 - 80081ce: f7f8 fc83 bl 8000ad8 <__aeabi_dcmpeq> - 80081d2: 4680 mov r8, r0 - 80081d4: b158 cbz r0, 80081ee <_dtoa_r+0xce> - 80081d6: 9a11 ldr r2, [sp, #68] @ 0x44 - 80081d8: 2301 movs r3, #1 - 80081da: 6013 str r3, [r2, #0] - 80081dc: 9b21 ldr r3, [sp, #132] @ 0x84 - 80081de: b113 cbz r3, 80081e6 <_dtoa_r+0xc6> - 80081e0: 9a21 ldr r2, [sp, #132] @ 0x84 - 80081e2: 4b86 ldr r3, [pc, #536] @ (80083fc <_dtoa_r+0x2dc>) - 80081e4: 6013 str r3, [r2, #0] - 80081e6: f8df a228 ldr.w sl, [pc, #552] @ 8008410 <_dtoa_r+0x2f0> - 80081ea: f000 bd40 b.w 8008c6e <_dtoa_r+0xb4e> - 80081ee: ed9d 0b0a vldr d0, [sp, #40] @ 0x28 - 80081f2: aa14 add r2, sp, #80 @ 0x50 - 80081f4: a915 add r1, sp, #84 @ 0x54 - 80081f6: 4648 mov r0, r9 - 80081f8: f001 f984 bl 8009504 <__d2b> - 80081fc: f3c7 560a ubfx r6, r7, #20, #11 - 8008200: 9002 str r0, [sp, #8] - 8008202: 2e00 cmp r6, #0 - 8008204: d078 beq.n 80082f8 <_dtoa_r+0x1d8> - 8008206: 9b0b ldr r3, [sp, #44] @ 0x2c - 8008208: f8cd 8048 str.w r8, [sp, #72] @ 0x48 - 800820c: f3c3 0313 ubfx r3, r3, #0, #20 - 8008210: e9dd 010a ldrd r0, r1, [sp, #40] @ 0x28 - 8008214: f043 537f orr.w r3, r3, #1069547520 @ 0x3fc00000 - 8008218: f443 1340 orr.w r3, r3, #3145728 @ 0x300000 - 800821c: f2a6 36ff subw r6, r6, #1023 @ 0x3ff - 8008220: 4619 mov r1, r3 - 8008222: 2200 movs r2, #0 - 8008224: 4b76 ldr r3, [pc, #472] @ (8008400 <_dtoa_r+0x2e0>) - 8008226: f7f8 f837 bl 8000298 <__aeabi_dsub> - 800822a: a36b add r3, pc, #428 @ (adr r3, 80083d8 <_dtoa_r+0x2b8>) - 800822c: e9d3 2300 ldrd r2, r3, [r3] - 8008230: f7f8 f9ea bl 8000608 <__aeabi_dmul> - 8008234: a36a add r3, pc, #424 @ (adr r3, 80083e0 <_dtoa_r+0x2c0>) - 8008236: e9d3 2300 ldrd r2, r3, [r3] - 800823a: f7f8 f82f bl 800029c <__adddf3> - 800823e: 4604 mov r4, r0 - 8008240: 4630 mov r0, r6 - 8008242: 460d mov r5, r1 - 8008244: f7f8 f976 bl 8000534 <__aeabi_i2d> - 8008248: a367 add r3, pc, #412 @ (adr r3, 80083e8 <_dtoa_r+0x2c8>) - 800824a: e9d3 2300 ldrd r2, r3, [r3] - 800824e: f7f8 f9db bl 8000608 <__aeabi_dmul> - 8008252: 4602 mov r2, r0 - 8008254: 460b mov r3, r1 - 8008256: 4620 mov r0, r4 - 8008258: 4629 mov r1, r5 - 800825a: f7f8 f81f bl 800029c <__adddf3> - 800825e: 4604 mov r4, r0 - 8008260: 460d mov r5, r1 - 8008262: f7f8 fc81 bl 8000b68 <__aeabi_d2iz> - 8008266: 2200 movs r2, #0 - 8008268: 4607 mov r7, r0 - 800826a: 2300 movs r3, #0 - 800826c: 4620 mov r0, r4 - 800826e: 4629 mov r1, r5 - 8008270: f7f8 fc3c bl 8000aec <__aeabi_dcmplt> - 8008274: b140 cbz r0, 8008288 <_dtoa_r+0x168> - 8008276: 4638 mov r0, r7 - 8008278: f7f8 f95c bl 8000534 <__aeabi_i2d> - 800827c: 4622 mov r2, r4 - 800827e: 462b mov r3, r5 - 8008280: f7f8 fc2a bl 8000ad8 <__aeabi_dcmpeq> - 8008284: b900 cbnz r0, 8008288 <_dtoa_r+0x168> - 8008286: 3f01 subs r7, #1 - 8008288: 2f16 cmp r7, #22 - 800828a: d852 bhi.n 8008332 <_dtoa_r+0x212> - 800828c: 4b5d ldr r3, [pc, #372] @ (8008404 <_dtoa_r+0x2e4>) - 800828e: eb03 03c7 add.w r3, r3, r7, lsl #3 - 8008292: e9d3 2300 ldrd r2, r3, [r3] - 8008296: e9dd 010a ldrd r0, r1, [sp, #40] @ 0x28 - 800829a: f7f8 fc27 bl 8000aec <__aeabi_dcmplt> - 800829e: 2800 cmp r0, #0 - 80082a0: d049 beq.n 8008336 <_dtoa_r+0x216> - 80082a2: 3f01 subs r7, #1 - 80082a4: 2300 movs r3, #0 - 80082a6: 9310 str r3, [sp, #64] @ 0x40 - 80082a8: 9b14 ldr r3, [sp, #80] @ 0x50 - 80082aa: 1b9b subs r3, r3, r6 - 80082ac: 1e5a subs r2, r3, #1 - 80082ae: bf45 ittet mi - 80082b0: f1c3 0301 rsbmi r3, r3, #1 - 80082b4: 9300 strmi r3, [sp, #0] - 80082b6: 2300 movpl r3, #0 - 80082b8: 2300 movmi r3, #0 - 80082ba: 9206 str r2, [sp, #24] - 80082bc: bf54 ite pl - 80082be: 9300 strpl r3, [sp, #0] - 80082c0: 9306 strmi r3, [sp, #24] - 80082c2: 2f00 cmp r7, #0 - 80082c4: db39 blt.n 800833a <_dtoa_r+0x21a> - 80082c6: 9b06 ldr r3, [sp, #24] - 80082c8: 970d str r7, [sp, #52] @ 0x34 - 80082ca: 443b add r3, r7 - 80082cc: 9306 str r3, [sp, #24] - 80082ce: 2300 movs r3, #0 - 80082d0: 9308 str r3, [sp, #32] - 80082d2: 9b07 ldr r3, [sp, #28] - 80082d4: 2b09 cmp r3, #9 - 80082d6: d863 bhi.n 80083a0 <_dtoa_r+0x280> - 80082d8: 2b05 cmp r3, #5 - 80082da: bfc4 itt gt - 80082dc: 3b04 subgt r3, #4 - 80082de: 9307 strgt r3, [sp, #28] - 80082e0: 9b07 ldr r3, [sp, #28] - 80082e2: f1a3 0302 sub.w r3, r3, #2 - 80082e6: bfcc ite gt - 80082e8: 2400 movgt r4, #0 - 80082ea: 2401 movle r4, #1 - 80082ec: 2b03 cmp r3, #3 - 80082ee: d863 bhi.n 80083b8 <_dtoa_r+0x298> - 80082f0: e8df f003 tbb [pc, r3] - 80082f4: 2b375452 .word 0x2b375452 - 80082f8: e9dd 6314 ldrd r6, r3, [sp, #80] @ 0x50 - 80082fc: 441e add r6, r3 - 80082fe: f206 4332 addw r3, r6, #1074 @ 0x432 - 8008302: 2b20 cmp r3, #32 - 8008304: bfc1 itttt gt - 8008306: f1c3 0340 rsbgt r3, r3, #64 @ 0x40 - 800830a: 409f lslgt r7, r3 - 800830c: f206 4312 addwgt r3, r6, #1042 @ 0x412 - 8008310: fa24 f303 lsrgt.w r3, r4, r3 - 8008314: bfd6 itet le - 8008316: f1c3 0320 rsble r3, r3, #32 - 800831a: ea47 0003 orrgt.w r0, r7, r3 - 800831e: fa04 f003 lslle.w r0, r4, r3 - 8008322: f7f8 f8f7 bl 8000514 <__aeabi_ui2d> - 8008326: 2201 movs r2, #1 - 8008328: f1a1 73f8 sub.w r3, r1, #32505856 @ 0x1f00000 - 800832c: 3e01 subs r6, #1 - 800832e: 9212 str r2, [sp, #72] @ 0x48 - 8008330: e776 b.n 8008220 <_dtoa_r+0x100> - 8008332: 2301 movs r3, #1 - 8008334: e7b7 b.n 80082a6 <_dtoa_r+0x186> - 8008336: 9010 str r0, [sp, #64] @ 0x40 - 8008338: e7b6 b.n 80082a8 <_dtoa_r+0x188> - 800833a: 9b00 ldr r3, [sp, #0] - 800833c: 1bdb subs r3, r3, r7 - 800833e: 9300 str r3, [sp, #0] - 8008340: 427b negs r3, r7 - 8008342: 9308 str r3, [sp, #32] - 8008344: 2300 movs r3, #0 - 8008346: 930d str r3, [sp, #52] @ 0x34 - 8008348: e7c3 b.n 80082d2 <_dtoa_r+0x1b2> - 800834a: 2301 movs r3, #1 - 800834c: 9309 str r3, [sp, #36] @ 0x24 - 800834e: 9b0c ldr r3, [sp, #48] @ 0x30 - 8008350: eb07 0b03 add.w fp, r7, r3 - 8008354: f10b 0301 add.w r3, fp, #1 - 8008358: 2b01 cmp r3, #1 - 800835a: 9303 str r3, [sp, #12] - 800835c: bfb8 it lt - 800835e: 2301 movlt r3, #1 - 8008360: e006 b.n 8008370 <_dtoa_r+0x250> - 8008362: 2301 movs r3, #1 - 8008364: 9309 str r3, [sp, #36] @ 0x24 - 8008366: 9b0c ldr r3, [sp, #48] @ 0x30 - 8008368: 2b00 cmp r3, #0 - 800836a: dd28 ble.n 80083be <_dtoa_r+0x29e> - 800836c: 469b mov fp, r3 - 800836e: 9303 str r3, [sp, #12] - 8008370: f8d9 001c ldr.w r0, [r9, #28] - 8008374: 2100 movs r1, #0 - 8008376: 2204 movs r2, #4 - 8008378: f102 0514 add.w r5, r2, #20 - 800837c: 429d cmp r5, r3 - 800837e: d926 bls.n 80083ce <_dtoa_r+0x2ae> - 8008380: 6041 str r1, [r0, #4] - 8008382: 4648 mov r0, r9 - 8008384: f000 fd9c bl 8008ec0 <_Balloc> - 8008388: 4682 mov sl, r0 - 800838a: 2800 cmp r0, #0 - 800838c: d142 bne.n 8008414 <_dtoa_r+0x2f4> - 800838e: 4b1e ldr r3, [pc, #120] @ (8008408 <_dtoa_r+0x2e8>) - 8008390: 4602 mov r2, r0 - 8008392: f240 11af movw r1, #431 @ 0x1af - 8008396: e6da b.n 800814e <_dtoa_r+0x2e> - 8008398: 2300 movs r3, #0 - 800839a: e7e3 b.n 8008364 <_dtoa_r+0x244> - 800839c: 2300 movs r3, #0 - 800839e: e7d5 b.n 800834c <_dtoa_r+0x22c> - 80083a0: 2401 movs r4, #1 - 80083a2: 2300 movs r3, #0 - 80083a4: 9307 str r3, [sp, #28] - 80083a6: 9409 str r4, [sp, #36] @ 0x24 - 80083a8: f04f 3bff mov.w fp, #4294967295 - 80083ac: 2200 movs r2, #0 - 80083ae: f8cd b00c str.w fp, [sp, #12] - 80083b2: 2312 movs r3, #18 - 80083b4: 920c str r2, [sp, #48] @ 0x30 - 80083b6: e7db b.n 8008370 <_dtoa_r+0x250> - 80083b8: 2301 movs r3, #1 - 80083ba: 9309 str r3, [sp, #36] @ 0x24 - 80083bc: e7f4 b.n 80083a8 <_dtoa_r+0x288> - 80083be: f04f 0b01 mov.w fp, #1 - 80083c2: f8cd b00c str.w fp, [sp, #12] - 80083c6: 465b mov r3, fp - 80083c8: f8cd b030 str.w fp, [sp, #48] @ 0x30 - 80083cc: e7d0 b.n 8008370 <_dtoa_r+0x250> - 80083ce: 3101 adds r1, #1 - 80083d0: 0052 lsls r2, r2, #1 - 80083d2: e7d1 b.n 8008378 <_dtoa_r+0x258> - 80083d4: f3af 8000 nop.w - 80083d8: 636f4361 .word 0x636f4361 - 80083dc: 3fd287a7 .word 0x3fd287a7 - 80083e0: 8b60c8b3 .word 0x8b60c8b3 - 80083e4: 3fc68a28 .word 0x3fc68a28 - 80083e8: 509f79fb .word 0x509f79fb - 80083ec: 3fd34413 .word 0x3fd34413 - 80083f0: 0800b9c5 .word 0x0800b9c5 - 80083f4: 0800b9dc .word 0x0800b9dc - 80083f8: 7ff00000 .word 0x7ff00000 - 80083fc: 0800b995 .word 0x0800b995 - 8008400: 3ff80000 .word 0x3ff80000 - 8008404: 0800bb30 .word 0x0800bb30 - 8008408: 0800ba34 .word 0x0800ba34 - 800840c: 0800b9c1 .word 0x0800b9c1 - 8008410: 0800b994 .word 0x0800b994 - 8008414: f8d9 301c ldr.w r3, [r9, #28] - 8008418: 6018 str r0, [r3, #0] - 800841a: 9b03 ldr r3, [sp, #12] - 800841c: 2b0e cmp r3, #14 - 800841e: f200 80a1 bhi.w 8008564 <_dtoa_r+0x444> - 8008422: 2c00 cmp r4, #0 - 8008424: f000 809e beq.w 8008564 <_dtoa_r+0x444> - 8008428: 2f00 cmp r7, #0 - 800842a: dd33 ble.n 8008494 <_dtoa_r+0x374> - 800842c: 4b9c ldr r3, [pc, #624] @ (80086a0 <_dtoa_r+0x580>) - 800842e: f007 020f and.w r2, r7, #15 - 8008432: eb03 03c2 add.w r3, r3, r2, lsl #3 - 8008436: ed93 7b00 vldr d7, [r3] - 800843a: 05f8 lsls r0, r7, #23 - 800843c: ed8d 7b0e vstr d7, [sp, #56] @ 0x38 - 8008440: ea4f 1427 mov.w r4, r7, asr #4 - 8008444: d516 bpl.n 8008474 <_dtoa_r+0x354> - 8008446: 4b97 ldr r3, [pc, #604] @ (80086a4 <_dtoa_r+0x584>) - 8008448: e9dd 010a ldrd r0, r1, [sp, #40] @ 0x28 - 800844c: e9d3 2308 ldrd r2, r3, [r3, #32] - 8008450: f7f8 fa04 bl 800085c <__aeabi_ddiv> - 8008454: e9cd 0104 strd r0, r1, [sp, #16] - 8008458: f004 040f and.w r4, r4, #15 - 800845c: 2603 movs r6, #3 - 800845e: 4d91 ldr r5, [pc, #580] @ (80086a4 <_dtoa_r+0x584>) - 8008460: b954 cbnz r4, 8008478 <_dtoa_r+0x358> - 8008462: e9dd 230e ldrd r2, r3, [sp, #56] @ 0x38 - 8008466: e9dd 0104 ldrd r0, r1, [sp, #16] - 800846a: f7f8 f9f7 bl 800085c <__aeabi_ddiv> - 800846e: e9cd 0104 strd r0, r1, [sp, #16] - 8008472: e028 b.n 80084c6 <_dtoa_r+0x3a6> - 8008474: 2602 movs r6, #2 - 8008476: e7f2 b.n 800845e <_dtoa_r+0x33e> - 8008478: 07e1 lsls r1, r4, #31 - 800847a: d508 bpl.n 800848e <_dtoa_r+0x36e> - 800847c: e9dd 010e ldrd r0, r1, [sp, #56] @ 0x38 - 8008480: e9d5 2300 ldrd r2, r3, [r5] - 8008484: f7f8 f8c0 bl 8000608 <__aeabi_dmul> - 8008488: e9cd 010e strd r0, r1, [sp, #56] @ 0x38 - 800848c: 3601 adds r6, #1 - 800848e: 1064 asrs r4, r4, #1 - 8008490: 3508 adds r5, #8 - 8008492: e7e5 b.n 8008460 <_dtoa_r+0x340> - 8008494: f000 80af beq.w 80085f6 <_dtoa_r+0x4d6> - 8008498: 427c negs r4, r7 - 800849a: 4b81 ldr r3, [pc, #516] @ (80086a0 <_dtoa_r+0x580>) - 800849c: 4d81 ldr r5, [pc, #516] @ (80086a4 <_dtoa_r+0x584>) - 800849e: f004 020f and.w r2, r4, #15 - 80084a2: eb03 03c2 add.w r3, r3, r2, lsl #3 - 80084a6: e9d3 2300 ldrd r2, r3, [r3] - 80084aa: e9dd 010a ldrd r0, r1, [sp, #40] @ 0x28 - 80084ae: f7f8 f8ab bl 8000608 <__aeabi_dmul> - 80084b2: e9cd 0104 strd r0, r1, [sp, #16] - 80084b6: 1124 asrs r4, r4, #4 - 80084b8: 2300 movs r3, #0 - 80084ba: 2602 movs r6, #2 - 80084bc: 2c00 cmp r4, #0 - 80084be: f040 808f bne.w 80085e0 <_dtoa_r+0x4c0> - 80084c2: 2b00 cmp r3, #0 - 80084c4: d1d3 bne.n 800846e <_dtoa_r+0x34e> - 80084c6: 9b10 ldr r3, [sp, #64] @ 0x40 - 80084c8: e9dd 4504 ldrd r4, r5, [sp, #16] - 80084cc: 2b00 cmp r3, #0 - 80084ce: f000 8094 beq.w 80085fa <_dtoa_r+0x4da> - 80084d2: 4b75 ldr r3, [pc, #468] @ (80086a8 <_dtoa_r+0x588>) - 80084d4: 2200 movs r2, #0 - 80084d6: 4620 mov r0, r4 - 80084d8: 4629 mov r1, r5 - 80084da: f7f8 fb07 bl 8000aec <__aeabi_dcmplt> - 80084de: 2800 cmp r0, #0 - 80084e0: f000 808b beq.w 80085fa <_dtoa_r+0x4da> - 80084e4: 9b03 ldr r3, [sp, #12] - 80084e6: 2b00 cmp r3, #0 - 80084e8: f000 8087 beq.w 80085fa <_dtoa_r+0x4da> - 80084ec: f1bb 0f00 cmp.w fp, #0 - 80084f0: dd34 ble.n 800855c <_dtoa_r+0x43c> - 80084f2: 4620 mov r0, r4 - 80084f4: 4b6d ldr r3, [pc, #436] @ (80086ac <_dtoa_r+0x58c>) - 80084f6: 2200 movs r2, #0 - 80084f8: 4629 mov r1, r5 - 80084fa: f7f8 f885 bl 8000608 <__aeabi_dmul> - 80084fe: e9cd 0104 strd r0, r1, [sp, #16] - 8008502: f107 38ff add.w r8, r7, #4294967295 - 8008506: 3601 adds r6, #1 - 8008508: 465c mov r4, fp - 800850a: 4630 mov r0, r6 - 800850c: f7f8 f812 bl 8000534 <__aeabi_i2d> - 8008510: e9dd 2304 ldrd r2, r3, [sp, #16] - 8008514: f7f8 f878 bl 8000608 <__aeabi_dmul> - 8008518: 4b65 ldr r3, [pc, #404] @ (80086b0 <_dtoa_r+0x590>) - 800851a: 2200 movs r2, #0 - 800851c: f7f7 febe bl 800029c <__adddf3> - 8008520: 4605 mov r5, r0 - 8008522: f1a1 7650 sub.w r6, r1, #54525952 @ 0x3400000 - 8008526: 2c00 cmp r4, #0 - 8008528: d16a bne.n 8008600 <_dtoa_r+0x4e0> - 800852a: e9dd 0104 ldrd r0, r1, [sp, #16] - 800852e: 4b61 ldr r3, [pc, #388] @ (80086b4 <_dtoa_r+0x594>) - 8008530: 2200 movs r2, #0 - 8008532: f7f7 feb1 bl 8000298 <__aeabi_dsub> - 8008536: 4602 mov r2, r0 - 8008538: 460b mov r3, r1 - 800853a: e9cd 2304 strd r2, r3, [sp, #16] - 800853e: 462a mov r2, r5 - 8008540: 4633 mov r3, r6 - 8008542: f7f8 faf1 bl 8000b28 <__aeabi_dcmpgt> - 8008546: 2800 cmp r0, #0 - 8008548: f040 8298 bne.w 8008a7c <_dtoa_r+0x95c> - 800854c: e9dd 0104 ldrd r0, r1, [sp, #16] - 8008550: 462a mov r2, r5 - 8008552: f106 4300 add.w r3, r6, #2147483648 @ 0x80000000 - 8008556: f7f8 fac9 bl 8000aec <__aeabi_dcmplt> - 800855a: bb38 cbnz r0, 80085ac <_dtoa_r+0x48c> - 800855c: e9dd 340a ldrd r3, r4, [sp, #40] @ 0x28 - 8008560: e9cd 3404 strd r3, r4, [sp, #16] - 8008564: 9b15 ldr r3, [sp, #84] @ 0x54 - 8008566: 2b00 cmp r3, #0 - 8008568: f2c0 8157 blt.w 800881a <_dtoa_r+0x6fa> - 800856c: 2f0e cmp r7, #14 - 800856e: f300 8154 bgt.w 800881a <_dtoa_r+0x6fa> - 8008572: 4b4b ldr r3, [pc, #300] @ (80086a0 <_dtoa_r+0x580>) - 8008574: eb03 03c7 add.w r3, r3, r7, lsl #3 - 8008578: ed93 7b00 vldr d7, [r3] - 800857c: 9b0c ldr r3, [sp, #48] @ 0x30 - 800857e: 2b00 cmp r3, #0 - 8008580: ed8d 7b00 vstr d7, [sp] - 8008584: f280 80e5 bge.w 8008752 <_dtoa_r+0x632> - 8008588: 9b03 ldr r3, [sp, #12] - 800858a: 2b00 cmp r3, #0 - 800858c: f300 80e1 bgt.w 8008752 <_dtoa_r+0x632> - 8008590: d10c bne.n 80085ac <_dtoa_r+0x48c> - 8008592: 4b48 ldr r3, [pc, #288] @ (80086b4 <_dtoa_r+0x594>) - 8008594: 2200 movs r2, #0 - 8008596: ec51 0b17 vmov r0, r1, d7 - 800859a: f7f8 f835 bl 8000608 <__aeabi_dmul> - 800859e: e9dd 2304 ldrd r2, r3, [sp, #16] - 80085a2: f7f8 fab7 bl 8000b14 <__aeabi_dcmpge> - 80085a6: 2800 cmp r0, #0 - 80085a8: f000 8266 beq.w 8008a78 <_dtoa_r+0x958> - 80085ac: 2400 movs r4, #0 - 80085ae: 4625 mov r5, r4 - 80085b0: 9b0c ldr r3, [sp, #48] @ 0x30 - 80085b2: 4656 mov r6, sl - 80085b4: ea6f 0803 mvn.w r8, r3 - 80085b8: 2700 movs r7, #0 - 80085ba: 4621 mov r1, r4 - 80085bc: 4648 mov r0, r9 - 80085be: f000 fcbf bl 8008f40 <_Bfree> - 80085c2: 2d00 cmp r5, #0 - 80085c4: f000 80bd beq.w 8008742 <_dtoa_r+0x622> - 80085c8: b12f cbz r7, 80085d6 <_dtoa_r+0x4b6> - 80085ca: 42af cmp r7, r5 - 80085cc: d003 beq.n 80085d6 <_dtoa_r+0x4b6> - 80085ce: 4639 mov r1, r7 - 80085d0: 4648 mov r0, r9 - 80085d2: f000 fcb5 bl 8008f40 <_Bfree> - 80085d6: 4629 mov r1, r5 - 80085d8: 4648 mov r0, r9 - 80085da: f000 fcb1 bl 8008f40 <_Bfree> - 80085de: e0b0 b.n 8008742 <_dtoa_r+0x622> - 80085e0: 07e2 lsls r2, r4, #31 - 80085e2: d505 bpl.n 80085f0 <_dtoa_r+0x4d0> - 80085e4: e9d5 2300 ldrd r2, r3, [r5] - 80085e8: f7f8 f80e bl 8000608 <__aeabi_dmul> - 80085ec: 3601 adds r6, #1 - 80085ee: 2301 movs r3, #1 - 80085f0: 1064 asrs r4, r4, #1 - 80085f2: 3508 adds r5, #8 - 80085f4: e762 b.n 80084bc <_dtoa_r+0x39c> - 80085f6: 2602 movs r6, #2 - 80085f8: e765 b.n 80084c6 <_dtoa_r+0x3a6> - 80085fa: 9c03 ldr r4, [sp, #12] - 80085fc: 46b8 mov r8, r7 - 80085fe: e784 b.n 800850a <_dtoa_r+0x3ea> - 8008600: 4b27 ldr r3, [pc, #156] @ (80086a0 <_dtoa_r+0x580>) - 8008602: 9909 ldr r1, [sp, #36] @ 0x24 - 8008604: eb03 03c4 add.w r3, r3, r4, lsl #3 - 8008608: e953 2302 ldrd r2, r3, [r3, #-8] - 800860c: 4454 add r4, sl - 800860e: 2900 cmp r1, #0 - 8008610: d054 beq.n 80086bc <_dtoa_r+0x59c> - 8008612: 4929 ldr r1, [pc, #164] @ (80086b8 <_dtoa_r+0x598>) - 8008614: 2000 movs r0, #0 - 8008616: f7f8 f921 bl 800085c <__aeabi_ddiv> - 800861a: 4633 mov r3, r6 - 800861c: 462a mov r2, r5 - 800861e: f7f7 fe3b bl 8000298 <__aeabi_dsub> - 8008622: e9cd 010e strd r0, r1, [sp, #56] @ 0x38 - 8008626: 4656 mov r6, sl - 8008628: e9dd 0104 ldrd r0, r1, [sp, #16] - 800862c: f7f8 fa9c bl 8000b68 <__aeabi_d2iz> - 8008630: 4605 mov r5, r0 - 8008632: f7f7 ff7f bl 8000534 <__aeabi_i2d> - 8008636: 4602 mov r2, r0 - 8008638: 460b mov r3, r1 - 800863a: e9dd 0104 ldrd r0, r1, [sp, #16] - 800863e: f7f7 fe2b bl 8000298 <__aeabi_dsub> - 8008642: 3530 adds r5, #48 @ 0x30 - 8008644: 4602 mov r2, r0 - 8008646: 460b mov r3, r1 - 8008648: e9cd 2304 strd r2, r3, [sp, #16] - 800864c: f806 5b01 strb.w r5, [r6], #1 - 8008650: e9dd 230e ldrd r2, r3, [sp, #56] @ 0x38 - 8008654: f7f8 fa4a bl 8000aec <__aeabi_dcmplt> - 8008658: 2800 cmp r0, #0 - 800865a: d172 bne.n 8008742 <_dtoa_r+0x622> - 800865c: e9dd 2304 ldrd r2, r3, [sp, #16] - 8008660: 4911 ldr r1, [pc, #68] @ (80086a8 <_dtoa_r+0x588>) - 8008662: 2000 movs r0, #0 - 8008664: f7f7 fe18 bl 8000298 <__aeabi_dsub> - 8008668: e9dd 230e ldrd r2, r3, [sp, #56] @ 0x38 - 800866c: f7f8 fa3e bl 8000aec <__aeabi_dcmplt> - 8008670: 2800 cmp r0, #0 - 8008672: f040 80b4 bne.w 80087de <_dtoa_r+0x6be> - 8008676: 42a6 cmp r6, r4 - 8008678: f43f af70 beq.w 800855c <_dtoa_r+0x43c> - 800867c: e9dd 010e ldrd r0, r1, [sp, #56] @ 0x38 - 8008680: 4b0a ldr r3, [pc, #40] @ (80086ac <_dtoa_r+0x58c>) - 8008682: 2200 movs r2, #0 - 8008684: f7f7 ffc0 bl 8000608 <__aeabi_dmul> - 8008688: 4b08 ldr r3, [pc, #32] @ (80086ac <_dtoa_r+0x58c>) - 800868a: e9cd 010e strd r0, r1, [sp, #56] @ 0x38 - 800868e: 2200 movs r2, #0 - 8008690: e9dd 0104 ldrd r0, r1, [sp, #16] - 8008694: f7f7 ffb8 bl 8000608 <__aeabi_dmul> - 8008698: e9cd 0104 strd r0, r1, [sp, #16] - 800869c: e7c4 b.n 8008628 <_dtoa_r+0x508> - 800869e: bf00 nop - 80086a0: 0800bb30 .word 0x0800bb30 - 80086a4: 0800bb08 .word 0x0800bb08 - 80086a8: 3ff00000 .word 0x3ff00000 - 80086ac: 40240000 .word 0x40240000 - 80086b0: 401c0000 .word 0x401c0000 - 80086b4: 40140000 .word 0x40140000 - 80086b8: 3fe00000 .word 0x3fe00000 - 80086bc: 4631 mov r1, r6 - 80086be: 4628 mov r0, r5 - 80086c0: f7f7 ffa2 bl 8000608 <__aeabi_dmul> - 80086c4: e9cd 010e strd r0, r1, [sp, #56] @ 0x38 - 80086c8: 9413 str r4, [sp, #76] @ 0x4c - 80086ca: 4656 mov r6, sl - 80086cc: e9dd 0104 ldrd r0, r1, [sp, #16] - 80086d0: f7f8 fa4a bl 8000b68 <__aeabi_d2iz> - 80086d4: 4605 mov r5, r0 - 80086d6: f7f7 ff2d bl 8000534 <__aeabi_i2d> - 80086da: 4602 mov r2, r0 - 80086dc: 460b mov r3, r1 - 80086de: e9dd 0104 ldrd r0, r1, [sp, #16] - 80086e2: f7f7 fdd9 bl 8000298 <__aeabi_dsub> - 80086e6: 3530 adds r5, #48 @ 0x30 - 80086e8: f806 5b01 strb.w r5, [r6], #1 - 80086ec: 4602 mov r2, r0 - 80086ee: 460b mov r3, r1 - 80086f0: 42a6 cmp r6, r4 - 80086f2: e9cd 2304 strd r2, r3, [sp, #16] - 80086f6: f04f 0200 mov.w r2, #0 - 80086fa: d124 bne.n 8008746 <_dtoa_r+0x626> - 80086fc: 4baf ldr r3, [pc, #700] @ (80089bc <_dtoa_r+0x89c>) - 80086fe: e9dd 010e ldrd r0, r1, [sp, #56] @ 0x38 - 8008702: f7f7 fdcb bl 800029c <__adddf3> - 8008706: 4602 mov r2, r0 - 8008708: 460b mov r3, r1 - 800870a: e9dd 0104 ldrd r0, r1, [sp, #16] - 800870e: f7f8 fa0b bl 8000b28 <__aeabi_dcmpgt> - 8008712: 2800 cmp r0, #0 - 8008714: d163 bne.n 80087de <_dtoa_r+0x6be> - 8008716: e9dd 230e ldrd r2, r3, [sp, #56] @ 0x38 - 800871a: 49a8 ldr r1, [pc, #672] @ (80089bc <_dtoa_r+0x89c>) - 800871c: 2000 movs r0, #0 - 800871e: f7f7 fdbb bl 8000298 <__aeabi_dsub> - 8008722: 4602 mov r2, r0 - 8008724: 460b mov r3, r1 - 8008726: e9dd 0104 ldrd r0, r1, [sp, #16] - 800872a: f7f8 f9df bl 8000aec <__aeabi_dcmplt> - 800872e: 2800 cmp r0, #0 - 8008730: f43f af14 beq.w 800855c <_dtoa_r+0x43c> - 8008734: 9e13 ldr r6, [sp, #76] @ 0x4c - 8008736: 1e73 subs r3, r6, #1 - 8008738: 9313 str r3, [sp, #76] @ 0x4c - 800873a: f816 3c01 ldrb.w r3, [r6, #-1] - 800873e: 2b30 cmp r3, #48 @ 0x30 - 8008740: d0f8 beq.n 8008734 <_dtoa_r+0x614> - 8008742: 4647 mov r7, r8 - 8008744: e03b b.n 80087be <_dtoa_r+0x69e> - 8008746: 4b9e ldr r3, [pc, #632] @ (80089c0 <_dtoa_r+0x8a0>) - 8008748: f7f7 ff5e bl 8000608 <__aeabi_dmul> - 800874c: e9cd 0104 strd r0, r1, [sp, #16] - 8008750: e7bc b.n 80086cc <_dtoa_r+0x5ac> - 8008752: e9dd 4504 ldrd r4, r5, [sp, #16] - 8008756: 4656 mov r6, sl - 8008758: e9dd 2300 ldrd r2, r3, [sp] - 800875c: 4620 mov r0, r4 - 800875e: 4629 mov r1, r5 - 8008760: f7f8 f87c bl 800085c <__aeabi_ddiv> - 8008764: f7f8 fa00 bl 8000b68 <__aeabi_d2iz> - 8008768: 4680 mov r8, r0 - 800876a: f7f7 fee3 bl 8000534 <__aeabi_i2d> - 800876e: e9dd 2300 ldrd r2, r3, [sp] - 8008772: f7f7 ff49 bl 8000608 <__aeabi_dmul> - 8008776: 4602 mov r2, r0 - 8008778: 460b mov r3, r1 - 800877a: 4620 mov r0, r4 - 800877c: 4629 mov r1, r5 - 800877e: f108 0430 add.w r4, r8, #48 @ 0x30 - 8008782: f7f7 fd89 bl 8000298 <__aeabi_dsub> - 8008786: f806 4b01 strb.w r4, [r6], #1 - 800878a: 9d03 ldr r5, [sp, #12] - 800878c: eba6 040a sub.w r4, r6, sl - 8008790: 42a5 cmp r5, r4 - 8008792: 4602 mov r2, r0 - 8008794: 460b mov r3, r1 - 8008796: d133 bne.n 8008800 <_dtoa_r+0x6e0> - 8008798: f7f7 fd80 bl 800029c <__adddf3> - 800879c: e9dd 2300 ldrd r2, r3, [sp] - 80087a0: 4604 mov r4, r0 - 80087a2: 460d mov r5, r1 - 80087a4: f7f8 f9c0 bl 8000b28 <__aeabi_dcmpgt> - 80087a8: b9c0 cbnz r0, 80087dc <_dtoa_r+0x6bc> - 80087aa: e9dd 2300 ldrd r2, r3, [sp] - 80087ae: 4620 mov r0, r4 - 80087b0: 4629 mov r1, r5 - 80087b2: f7f8 f991 bl 8000ad8 <__aeabi_dcmpeq> - 80087b6: b110 cbz r0, 80087be <_dtoa_r+0x69e> - 80087b8: f018 0f01 tst.w r8, #1 - 80087bc: d10e bne.n 80087dc <_dtoa_r+0x6bc> - 80087be: 9902 ldr r1, [sp, #8] - 80087c0: 4648 mov r0, r9 - 80087c2: f000 fbbd bl 8008f40 <_Bfree> - 80087c6: 2300 movs r3, #0 - 80087c8: 7033 strb r3, [r6, #0] - 80087ca: 9b11 ldr r3, [sp, #68] @ 0x44 - 80087cc: 3701 adds r7, #1 - 80087ce: 601f str r7, [r3, #0] - 80087d0: 9b21 ldr r3, [sp, #132] @ 0x84 - 80087d2: 2b00 cmp r3, #0 - 80087d4: f000 824b beq.w 8008c6e <_dtoa_r+0xb4e> - 80087d8: 601e str r6, [r3, #0] - 80087da: e248 b.n 8008c6e <_dtoa_r+0xb4e> - 80087dc: 46b8 mov r8, r7 - 80087de: 4633 mov r3, r6 - 80087e0: 461e mov r6, r3 - 80087e2: f813 2d01 ldrb.w r2, [r3, #-1]! - 80087e6: 2a39 cmp r2, #57 @ 0x39 - 80087e8: d106 bne.n 80087f8 <_dtoa_r+0x6d8> - 80087ea: 459a cmp sl, r3 - 80087ec: d1f8 bne.n 80087e0 <_dtoa_r+0x6c0> - 80087ee: 2230 movs r2, #48 @ 0x30 - 80087f0: f108 0801 add.w r8, r8, #1 - 80087f4: f88a 2000 strb.w r2, [sl] - 80087f8: 781a ldrb r2, [r3, #0] - 80087fa: 3201 adds r2, #1 - 80087fc: 701a strb r2, [r3, #0] - 80087fe: e7a0 b.n 8008742 <_dtoa_r+0x622> - 8008800: 4b6f ldr r3, [pc, #444] @ (80089c0 <_dtoa_r+0x8a0>) - 8008802: 2200 movs r2, #0 - 8008804: f7f7 ff00 bl 8000608 <__aeabi_dmul> - 8008808: 2200 movs r2, #0 - 800880a: 2300 movs r3, #0 - 800880c: 4604 mov r4, r0 - 800880e: 460d mov r5, r1 - 8008810: f7f8 f962 bl 8000ad8 <__aeabi_dcmpeq> - 8008814: 2800 cmp r0, #0 - 8008816: d09f beq.n 8008758 <_dtoa_r+0x638> - 8008818: e7d1 b.n 80087be <_dtoa_r+0x69e> - 800881a: 9a09 ldr r2, [sp, #36] @ 0x24 - 800881c: 2a00 cmp r2, #0 - 800881e: f000 80ea beq.w 80089f6 <_dtoa_r+0x8d6> - 8008822: 9a07 ldr r2, [sp, #28] - 8008824: 2a01 cmp r2, #1 - 8008826: f300 80cd bgt.w 80089c4 <_dtoa_r+0x8a4> - 800882a: 9a12 ldr r2, [sp, #72] @ 0x48 - 800882c: 2a00 cmp r2, #0 - 800882e: f000 80c1 beq.w 80089b4 <_dtoa_r+0x894> - 8008832: f203 4333 addw r3, r3, #1075 @ 0x433 - 8008836: 9c08 ldr r4, [sp, #32] - 8008838: 9e00 ldr r6, [sp, #0] - 800883a: 9a00 ldr r2, [sp, #0] - 800883c: 441a add r2, r3 - 800883e: 9200 str r2, [sp, #0] - 8008840: 9a06 ldr r2, [sp, #24] - 8008842: 2101 movs r1, #1 - 8008844: 441a add r2, r3 - 8008846: 4648 mov r0, r9 - 8008848: 9206 str r2, [sp, #24] - 800884a: f000 fc2d bl 80090a8 <__i2b> - 800884e: 4605 mov r5, r0 - 8008850: b166 cbz r6, 800886c <_dtoa_r+0x74c> - 8008852: 9b06 ldr r3, [sp, #24] - 8008854: 2b00 cmp r3, #0 - 8008856: dd09 ble.n 800886c <_dtoa_r+0x74c> - 8008858: 42b3 cmp r3, r6 - 800885a: 9a00 ldr r2, [sp, #0] - 800885c: bfa8 it ge - 800885e: 4633 movge r3, r6 - 8008860: 1ad2 subs r2, r2, r3 - 8008862: 9200 str r2, [sp, #0] - 8008864: 9a06 ldr r2, [sp, #24] - 8008866: 1af6 subs r6, r6, r3 - 8008868: 1ad3 subs r3, r2, r3 - 800886a: 9306 str r3, [sp, #24] - 800886c: 9b08 ldr r3, [sp, #32] - 800886e: b30b cbz r3, 80088b4 <_dtoa_r+0x794> - 8008870: 9b09 ldr r3, [sp, #36] @ 0x24 - 8008872: 2b00 cmp r3, #0 - 8008874: f000 80c6 beq.w 8008a04 <_dtoa_r+0x8e4> - 8008878: 2c00 cmp r4, #0 - 800887a: f000 80c0 beq.w 80089fe <_dtoa_r+0x8de> - 800887e: 4629 mov r1, r5 - 8008880: 4622 mov r2, r4 - 8008882: 4648 mov r0, r9 - 8008884: f000 fcc8 bl 8009218 <__pow5mult> - 8008888: 9a02 ldr r2, [sp, #8] - 800888a: 4601 mov r1, r0 - 800888c: 4605 mov r5, r0 - 800888e: 4648 mov r0, r9 - 8008890: f000 fc20 bl 80090d4 <__multiply> - 8008894: 9902 ldr r1, [sp, #8] - 8008896: 4680 mov r8, r0 - 8008898: 4648 mov r0, r9 - 800889a: f000 fb51 bl 8008f40 <_Bfree> - 800889e: 9b08 ldr r3, [sp, #32] - 80088a0: 1b1b subs r3, r3, r4 - 80088a2: 9308 str r3, [sp, #32] - 80088a4: f000 80b1 beq.w 8008a0a <_dtoa_r+0x8ea> - 80088a8: 9a08 ldr r2, [sp, #32] - 80088aa: 4641 mov r1, r8 - 80088ac: 4648 mov r0, r9 - 80088ae: f000 fcb3 bl 8009218 <__pow5mult> - 80088b2: 9002 str r0, [sp, #8] - 80088b4: 2101 movs r1, #1 - 80088b6: 4648 mov r0, r9 - 80088b8: f000 fbf6 bl 80090a8 <__i2b> - 80088bc: 9b0d ldr r3, [sp, #52] @ 0x34 - 80088be: 4604 mov r4, r0 - 80088c0: 2b00 cmp r3, #0 - 80088c2: f000 81d8 beq.w 8008c76 <_dtoa_r+0xb56> - 80088c6: 461a mov r2, r3 - 80088c8: 4601 mov r1, r0 - 80088ca: 4648 mov r0, r9 - 80088cc: f000 fca4 bl 8009218 <__pow5mult> - 80088d0: 9b07 ldr r3, [sp, #28] - 80088d2: 2b01 cmp r3, #1 - 80088d4: 4604 mov r4, r0 - 80088d6: f300 809f bgt.w 8008a18 <_dtoa_r+0x8f8> - 80088da: 9b04 ldr r3, [sp, #16] - 80088dc: 2b00 cmp r3, #0 - 80088de: f040 8097 bne.w 8008a10 <_dtoa_r+0x8f0> - 80088e2: 9b05 ldr r3, [sp, #20] - 80088e4: f3c3 0313 ubfx r3, r3, #0, #20 - 80088e8: 2b00 cmp r3, #0 - 80088ea: f040 8093 bne.w 8008a14 <_dtoa_r+0x8f4> - 80088ee: 9b05 ldr r3, [sp, #20] - 80088f0: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 - 80088f4: 0d1b lsrs r3, r3, #20 - 80088f6: 051b lsls r3, r3, #20 - 80088f8: b133 cbz r3, 8008908 <_dtoa_r+0x7e8> - 80088fa: 9b00 ldr r3, [sp, #0] - 80088fc: 3301 adds r3, #1 - 80088fe: 9300 str r3, [sp, #0] - 8008900: 9b06 ldr r3, [sp, #24] - 8008902: 3301 adds r3, #1 - 8008904: 9306 str r3, [sp, #24] - 8008906: 2301 movs r3, #1 - 8008908: 9308 str r3, [sp, #32] - 800890a: 9b0d ldr r3, [sp, #52] @ 0x34 - 800890c: 2b00 cmp r3, #0 - 800890e: f000 81b8 beq.w 8008c82 <_dtoa_r+0xb62> - 8008912: 6923 ldr r3, [r4, #16] - 8008914: eb04 0383 add.w r3, r4, r3, lsl #2 - 8008918: 6918 ldr r0, [r3, #16] - 800891a: f000 fb79 bl 8009010 <__hi0bits> - 800891e: f1c0 0020 rsb r0, r0, #32 - 8008922: 9b06 ldr r3, [sp, #24] - 8008924: 4418 add r0, r3 - 8008926: f010 001f ands.w r0, r0, #31 - 800892a: f000 8082 beq.w 8008a32 <_dtoa_r+0x912> - 800892e: f1c0 0320 rsb r3, r0, #32 - 8008932: 2b04 cmp r3, #4 - 8008934: dd73 ble.n 8008a1e <_dtoa_r+0x8fe> - 8008936: 9b00 ldr r3, [sp, #0] - 8008938: f1c0 001c rsb r0, r0, #28 - 800893c: 4403 add r3, r0 - 800893e: 9300 str r3, [sp, #0] - 8008940: 9b06 ldr r3, [sp, #24] - 8008942: 4403 add r3, r0 - 8008944: 4406 add r6, r0 - 8008946: 9306 str r3, [sp, #24] - 8008948: 9b00 ldr r3, [sp, #0] - 800894a: 2b00 cmp r3, #0 - 800894c: dd05 ble.n 800895a <_dtoa_r+0x83a> - 800894e: 9902 ldr r1, [sp, #8] - 8008950: 461a mov r2, r3 - 8008952: 4648 mov r0, r9 - 8008954: f000 fcba bl 80092cc <__lshift> - 8008958: 9002 str r0, [sp, #8] - 800895a: 9b06 ldr r3, [sp, #24] - 800895c: 2b00 cmp r3, #0 - 800895e: dd05 ble.n 800896c <_dtoa_r+0x84c> - 8008960: 4621 mov r1, r4 - 8008962: 461a mov r2, r3 - 8008964: 4648 mov r0, r9 - 8008966: f000 fcb1 bl 80092cc <__lshift> - 800896a: 4604 mov r4, r0 - 800896c: 9b10 ldr r3, [sp, #64] @ 0x40 - 800896e: 2b00 cmp r3, #0 - 8008970: d061 beq.n 8008a36 <_dtoa_r+0x916> - 8008972: 9802 ldr r0, [sp, #8] - 8008974: 4621 mov r1, r4 - 8008976: f000 fd15 bl 80093a4 <__mcmp> - 800897a: 2800 cmp r0, #0 - 800897c: da5b bge.n 8008a36 <_dtoa_r+0x916> - 800897e: 2300 movs r3, #0 - 8008980: 9902 ldr r1, [sp, #8] - 8008982: 220a movs r2, #10 - 8008984: 4648 mov r0, r9 - 8008986: f000 fafd bl 8008f84 <__multadd> - 800898a: 9b09 ldr r3, [sp, #36] @ 0x24 - 800898c: 9002 str r0, [sp, #8] - 800898e: f107 38ff add.w r8, r7, #4294967295 - 8008992: 2b00 cmp r3, #0 - 8008994: f000 8177 beq.w 8008c86 <_dtoa_r+0xb66> - 8008998: 4629 mov r1, r5 - 800899a: 2300 movs r3, #0 - 800899c: 220a movs r2, #10 - 800899e: 4648 mov r0, r9 - 80089a0: f000 faf0 bl 8008f84 <__multadd> - 80089a4: f1bb 0f00 cmp.w fp, #0 - 80089a8: 4605 mov r5, r0 - 80089aa: dc6f bgt.n 8008a8c <_dtoa_r+0x96c> - 80089ac: 9b07 ldr r3, [sp, #28] - 80089ae: 2b02 cmp r3, #2 - 80089b0: dc49 bgt.n 8008a46 <_dtoa_r+0x926> - 80089b2: e06b b.n 8008a8c <_dtoa_r+0x96c> - 80089b4: 9b14 ldr r3, [sp, #80] @ 0x50 - 80089b6: f1c3 0336 rsb r3, r3, #54 @ 0x36 - 80089ba: e73c b.n 8008836 <_dtoa_r+0x716> - 80089bc: 3fe00000 .word 0x3fe00000 - 80089c0: 40240000 .word 0x40240000 - 80089c4: 9b03 ldr r3, [sp, #12] - 80089c6: 1e5c subs r4, r3, #1 - 80089c8: 9b08 ldr r3, [sp, #32] - 80089ca: 42a3 cmp r3, r4 - 80089cc: db09 blt.n 80089e2 <_dtoa_r+0x8c2> - 80089ce: 1b1c subs r4, r3, r4 - 80089d0: 9b03 ldr r3, [sp, #12] - 80089d2: 2b00 cmp r3, #0 - 80089d4: f6bf af30 bge.w 8008838 <_dtoa_r+0x718> - 80089d8: 9b00 ldr r3, [sp, #0] - 80089da: 9a03 ldr r2, [sp, #12] - 80089dc: 1a9e subs r6, r3, r2 - 80089de: 2300 movs r3, #0 - 80089e0: e72b b.n 800883a <_dtoa_r+0x71a> - 80089e2: 9b08 ldr r3, [sp, #32] - 80089e4: 9a0d ldr r2, [sp, #52] @ 0x34 - 80089e6: 9408 str r4, [sp, #32] - 80089e8: 1ae3 subs r3, r4, r3 - 80089ea: 441a add r2, r3 - 80089ec: 9e00 ldr r6, [sp, #0] - 80089ee: 9b03 ldr r3, [sp, #12] - 80089f0: 920d str r2, [sp, #52] @ 0x34 - 80089f2: 2400 movs r4, #0 - 80089f4: e721 b.n 800883a <_dtoa_r+0x71a> - 80089f6: 9c08 ldr r4, [sp, #32] - 80089f8: 9e00 ldr r6, [sp, #0] - 80089fa: 9d09 ldr r5, [sp, #36] @ 0x24 - 80089fc: e728 b.n 8008850 <_dtoa_r+0x730> - 80089fe: f8dd 8008 ldr.w r8, [sp, #8] - 8008a02: e751 b.n 80088a8 <_dtoa_r+0x788> - 8008a04: 9a08 ldr r2, [sp, #32] - 8008a06: 9902 ldr r1, [sp, #8] - 8008a08: e750 b.n 80088ac <_dtoa_r+0x78c> - 8008a0a: f8cd 8008 str.w r8, [sp, #8] - 8008a0e: e751 b.n 80088b4 <_dtoa_r+0x794> - 8008a10: 2300 movs r3, #0 - 8008a12: e779 b.n 8008908 <_dtoa_r+0x7e8> - 8008a14: 9b04 ldr r3, [sp, #16] - 8008a16: e777 b.n 8008908 <_dtoa_r+0x7e8> - 8008a18: 2300 movs r3, #0 - 8008a1a: 9308 str r3, [sp, #32] - 8008a1c: e779 b.n 8008912 <_dtoa_r+0x7f2> - 8008a1e: d093 beq.n 8008948 <_dtoa_r+0x828> - 8008a20: 9a00 ldr r2, [sp, #0] - 8008a22: 331c adds r3, #28 - 8008a24: 441a add r2, r3 - 8008a26: 9200 str r2, [sp, #0] - 8008a28: 9a06 ldr r2, [sp, #24] - 8008a2a: 441a add r2, r3 - 8008a2c: 441e add r6, r3 - 8008a2e: 9206 str r2, [sp, #24] - 8008a30: e78a b.n 8008948 <_dtoa_r+0x828> - 8008a32: 4603 mov r3, r0 - 8008a34: e7f4 b.n 8008a20 <_dtoa_r+0x900> - 8008a36: 9b03 ldr r3, [sp, #12] - 8008a38: 2b00 cmp r3, #0 - 8008a3a: 46b8 mov r8, r7 - 8008a3c: dc20 bgt.n 8008a80 <_dtoa_r+0x960> - 8008a3e: 469b mov fp, r3 - 8008a40: 9b07 ldr r3, [sp, #28] - 8008a42: 2b02 cmp r3, #2 - 8008a44: dd1e ble.n 8008a84 <_dtoa_r+0x964> - 8008a46: f1bb 0f00 cmp.w fp, #0 - 8008a4a: f47f adb1 bne.w 80085b0 <_dtoa_r+0x490> - 8008a4e: 4621 mov r1, r4 - 8008a50: 465b mov r3, fp - 8008a52: 2205 movs r2, #5 - 8008a54: 4648 mov r0, r9 - 8008a56: f000 fa95 bl 8008f84 <__multadd> - 8008a5a: 4601 mov r1, r0 - 8008a5c: 4604 mov r4, r0 - 8008a5e: 9802 ldr r0, [sp, #8] - 8008a60: f000 fca0 bl 80093a4 <__mcmp> - 8008a64: 2800 cmp r0, #0 - 8008a66: f77f ada3 ble.w 80085b0 <_dtoa_r+0x490> - 8008a6a: 4656 mov r6, sl - 8008a6c: 2331 movs r3, #49 @ 0x31 - 8008a6e: f806 3b01 strb.w r3, [r6], #1 - 8008a72: f108 0801 add.w r8, r8, #1 - 8008a76: e59f b.n 80085b8 <_dtoa_r+0x498> - 8008a78: 9c03 ldr r4, [sp, #12] - 8008a7a: 46b8 mov r8, r7 - 8008a7c: 4625 mov r5, r4 - 8008a7e: e7f4 b.n 8008a6a <_dtoa_r+0x94a> - 8008a80: f8dd b00c ldr.w fp, [sp, #12] - 8008a84: 9b09 ldr r3, [sp, #36] @ 0x24 - 8008a86: 2b00 cmp r3, #0 - 8008a88: f000 8101 beq.w 8008c8e <_dtoa_r+0xb6e> - 8008a8c: 2e00 cmp r6, #0 - 8008a8e: dd05 ble.n 8008a9c <_dtoa_r+0x97c> - 8008a90: 4629 mov r1, r5 - 8008a92: 4632 mov r2, r6 - 8008a94: 4648 mov r0, r9 - 8008a96: f000 fc19 bl 80092cc <__lshift> - 8008a9a: 4605 mov r5, r0 - 8008a9c: 9b08 ldr r3, [sp, #32] - 8008a9e: 2b00 cmp r3, #0 - 8008aa0: d05c beq.n 8008b5c <_dtoa_r+0xa3c> - 8008aa2: 6869 ldr r1, [r5, #4] - 8008aa4: 4648 mov r0, r9 - 8008aa6: f000 fa0b bl 8008ec0 <_Balloc> - 8008aaa: 4606 mov r6, r0 - 8008aac: b928 cbnz r0, 8008aba <_dtoa_r+0x99a> - 8008aae: 4b82 ldr r3, [pc, #520] @ (8008cb8 <_dtoa_r+0xb98>) - 8008ab0: 4602 mov r2, r0 - 8008ab2: f240 21ef movw r1, #751 @ 0x2ef - 8008ab6: f7ff bb4a b.w 800814e <_dtoa_r+0x2e> - 8008aba: 692a ldr r2, [r5, #16] - 8008abc: 3202 adds r2, #2 - 8008abe: 0092 lsls r2, r2, #2 - 8008ac0: f105 010c add.w r1, r5, #12 - 8008ac4: 300c adds r0, #12 - 8008ac6: f001 f979 bl 8009dbc - 8008aca: 2201 movs r2, #1 - 8008acc: 4631 mov r1, r6 - 8008ace: 4648 mov r0, r9 - 8008ad0: f000 fbfc bl 80092cc <__lshift> - 8008ad4: f10a 0301 add.w r3, sl, #1 - 8008ad8: 9300 str r3, [sp, #0] - 8008ada: eb0a 030b add.w r3, sl, fp - 8008ade: 9308 str r3, [sp, #32] - 8008ae0: 9b04 ldr r3, [sp, #16] - 8008ae2: f003 0301 and.w r3, r3, #1 - 8008ae6: 462f mov r7, r5 - 8008ae8: 9306 str r3, [sp, #24] - 8008aea: 4605 mov r5, r0 - 8008aec: 9b00 ldr r3, [sp, #0] - 8008aee: 9802 ldr r0, [sp, #8] - 8008af0: 4621 mov r1, r4 - 8008af2: f103 3bff add.w fp, r3, #4294967295 - 8008af6: f7ff fa8a bl 800800e - 8008afa: 4603 mov r3, r0 - 8008afc: 3330 adds r3, #48 @ 0x30 - 8008afe: 9003 str r0, [sp, #12] - 8008b00: 4639 mov r1, r7 - 8008b02: 9802 ldr r0, [sp, #8] - 8008b04: 9309 str r3, [sp, #36] @ 0x24 - 8008b06: f000 fc4d bl 80093a4 <__mcmp> - 8008b0a: 462a mov r2, r5 - 8008b0c: 9004 str r0, [sp, #16] - 8008b0e: 4621 mov r1, r4 - 8008b10: 4648 mov r0, r9 - 8008b12: f000 fc63 bl 80093dc <__mdiff> - 8008b16: 68c2 ldr r2, [r0, #12] - 8008b18: 9b09 ldr r3, [sp, #36] @ 0x24 - 8008b1a: 4606 mov r6, r0 - 8008b1c: bb02 cbnz r2, 8008b60 <_dtoa_r+0xa40> - 8008b1e: 4601 mov r1, r0 - 8008b20: 9802 ldr r0, [sp, #8] - 8008b22: f000 fc3f bl 80093a4 <__mcmp> - 8008b26: 9b09 ldr r3, [sp, #36] @ 0x24 - 8008b28: 4602 mov r2, r0 - 8008b2a: 4631 mov r1, r6 - 8008b2c: 4648 mov r0, r9 - 8008b2e: 920c str r2, [sp, #48] @ 0x30 - 8008b30: 9309 str r3, [sp, #36] @ 0x24 - 8008b32: f000 fa05 bl 8008f40 <_Bfree> - 8008b36: 9b07 ldr r3, [sp, #28] - 8008b38: 9a0c ldr r2, [sp, #48] @ 0x30 - 8008b3a: 9e00 ldr r6, [sp, #0] - 8008b3c: ea42 0103 orr.w r1, r2, r3 - 8008b40: 9b06 ldr r3, [sp, #24] - 8008b42: 4319 orrs r1, r3 - 8008b44: 9b09 ldr r3, [sp, #36] @ 0x24 - 8008b46: d10d bne.n 8008b64 <_dtoa_r+0xa44> - 8008b48: 2b39 cmp r3, #57 @ 0x39 - 8008b4a: d027 beq.n 8008b9c <_dtoa_r+0xa7c> - 8008b4c: 9a04 ldr r2, [sp, #16] - 8008b4e: 2a00 cmp r2, #0 - 8008b50: dd01 ble.n 8008b56 <_dtoa_r+0xa36> - 8008b52: 9b03 ldr r3, [sp, #12] - 8008b54: 3331 adds r3, #49 @ 0x31 - 8008b56: f88b 3000 strb.w r3, [fp] - 8008b5a: e52e b.n 80085ba <_dtoa_r+0x49a> - 8008b5c: 4628 mov r0, r5 - 8008b5e: e7b9 b.n 8008ad4 <_dtoa_r+0x9b4> - 8008b60: 2201 movs r2, #1 - 8008b62: e7e2 b.n 8008b2a <_dtoa_r+0xa0a> - 8008b64: 9904 ldr r1, [sp, #16] - 8008b66: 2900 cmp r1, #0 - 8008b68: db04 blt.n 8008b74 <_dtoa_r+0xa54> - 8008b6a: 9807 ldr r0, [sp, #28] - 8008b6c: 4301 orrs r1, r0 - 8008b6e: 9806 ldr r0, [sp, #24] - 8008b70: 4301 orrs r1, r0 - 8008b72: d120 bne.n 8008bb6 <_dtoa_r+0xa96> - 8008b74: 2a00 cmp r2, #0 - 8008b76: ddee ble.n 8008b56 <_dtoa_r+0xa36> - 8008b78: 9902 ldr r1, [sp, #8] - 8008b7a: 9300 str r3, [sp, #0] - 8008b7c: 2201 movs r2, #1 - 8008b7e: 4648 mov r0, r9 - 8008b80: f000 fba4 bl 80092cc <__lshift> - 8008b84: 4621 mov r1, r4 - 8008b86: 9002 str r0, [sp, #8] - 8008b88: f000 fc0c bl 80093a4 <__mcmp> - 8008b8c: 2800 cmp r0, #0 - 8008b8e: 9b00 ldr r3, [sp, #0] - 8008b90: dc02 bgt.n 8008b98 <_dtoa_r+0xa78> - 8008b92: d1e0 bne.n 8008b56 <_dtoa_r+0xa36> - 8008b94: 07da lsls r2, r3, #31 - 8008b96: d5de bpl.n 8008b56 <_dtoa_r+0xa36> - 8008b98: 2b39 cmp r3, #57 @ 0x39 - 8008b9a: d1da bne.n 8008b52 <_dtoa_r+0xa32> - 8008b9c: 2339 movs r3, #57 @ 0x39 - 8008b9e: f88b 3000 strb.w r3, [fp] - 8008ba2: 4633 mov r3, r6 - 8008ba4: 461e mov r6, r3 - 8008ba6: 3b01 subs r3, #1 - 8008ba8: f816 2c01 ldrb.w r2, [r6, #-1] - 8008bac: 2a39 cmp r2, #57 @ 0x39 - 8008bae: d04e beq.n 8008c4e <_dtoa_r+0xb2e> - 8008bb0: 3201 adds r2, #1 - 8008bb2: 701a strb r2, [r3, #0] - 8008bb4: e501 b.n 80085ba <_dtoa_r+0x49a> - 8008bb6: 2a00 cmp r2, #0 - 8008bb8: dd03 ble.n 8008bc2 <_dtoa_r+0xaa2> - 8008bba: 2b39 cmp r3, #57 @ 0x39 - 8008bbc: d0ee beq.n 8008b9c <_dtoa_r+0xa7c> - 8008bbe: 3301 adds r3, #1 - 8008bc0: e7c9 b.n 8008b56 <_dtoa_r+0xa36> - 8008bc2: 9a00 ldr r2, [sp, #0] - 8008bc4: 9908 ldr r1, [sp, #32] - 8008bc6: f802 3c01 strb.w r3, [r2, #-1] - 8008bca: 428a cmp r2, r1 - 8008bcc: d028 beq.n 8008c20 <_dtoa_r+0xb00> - 8008bce: 9902 ldr r1, [sp, #8] - 8008bd0: 2300 movs r3, #0 - 8008bd2: 220a movs r2, #10 - 8008bd4: 4648 mov r0, r9 - 8008bd6: f000 f9d5 bl 8008f84 <__multadd> - 8008bda: 42af cmp r7, r5 - 8008bdc: 9002 str r0, [sp, #8] - 8008bde: f04f 0300 mov.w r3, #0 - 8008be2: f04f 020a mov.w r2, #10 - 8008be6: 4639 mov r1, r7 - 8008be8: 4648 mov r0, r9 - 8008bea: d107 bne.n 8008bfc <_dtoa_r+0xadc> - 8008bec: f000 f9ca bl 8008f84 <__multadd> - 8008bf0: 4607 mov r7, r0 - 8008bf2: 4605 mov r5, r0 - 8008bf4: 9b00 ldr r3, [sp, #0] - 8008bf6: 3301 adds r3, #1 - 8008bf8: 9300 str r3, [sp, #0] - 8008bfa: e777 b.n 8008aec <_dtoa_r+0x9cc> - 8008bfc: f000 f9c2 bl 8008f84 <__multadd> - 8008c00: 4629 mov r1, r5 - 8008c02: 4607 mov r7, r0 - 8008c04: 2300 movs r3, #0 - 8008c06: 220a movs r2, #10 - 8008c08: 4648 mov r0, r9 - 8008c0a: f000 f9bb bl 8008f84 <__multadd> - 8008c0e: 4605 mov r5, r0 - 8008c10: e7f0 b.n 8008bf4 <_dtoa_r+0xad4> - 8008c12: f1bb 0f00 cmp.w fp, #0 - 8008c16: bfcc ite gt - 8008c18: 465e movgt r6, fp - 8008c1a: 2601 movle r6, #1 - 8008c1c: 4456 add r6, sl - 8008c1e: 2700 movs r7, #0 - 8008c20: 9902 ldr r1, [sp, #8] - 8008c22: 9300 str r3, [sp, #0] - 8008c24: 2201 movs r2, #1 - 8008c26: 4648 mov r0, r9 - 8008c28: f000 fb50 bl 80092cc <__lshift> - 8008c2c: 4621 mov r1, r4 - 8008c2e: 9002 str r0, [sp, #8] - 8008c30: f000 fbb8 bl 80093a4 <__mcmp> - 8008c34: 2800 cmp r0, #0 - 8008c36: dcb4 bgt.n 8008ba2 <_dtoa_r+0xa82> - 8008c38: d102 bne.n 8008c40 <_dtoa_r+0xb20> - 8008c3a: 9b00 ldr r3, [sp, #0] - 8008c3c: 07db lsls r3, r3, #31 - 8008c3e: d4b0 bmi.n 8008ba2 <_dtoa_r+0xa82> - 8008c40: 4633 mov r3, r6 - 8008c42: 461e mov r6, r3 - 8008c44: f813 2d01 ldrb.w r2, [r3, #-1]! - 8008c48: 2a30 cmp r2, #48 @ 0x30 - 8008c4a: d0fa beq.n 8008c42 <_dtoa_r+0xb22> - 8008c4c: e4b5 b.n 80085ba <_dtoa_r+0x49a> - 8008c4e: 459a cmp sl, r3 - 8008c50: d1a8 bne.n 8008ba4 <_dtoa_r+0xa84> - 8008c52: 2331 movs r3, #49 @ 0x31 - 8008c54: f108 0801 add.w r8, r8, #1 - 8008c58: f88a 3000 strb.w r3, [sl] - 8008c5c: e4ad b.n 80085ba <_dtoa_r+0x49a> - 8008c5e: 9b21 ldr r3, [sp, #132] @ 0x84 - 8008c60: f8df a058 ldr.w sl, [pc, #88] @ 8008cbc <_dtoa_r+0xb9c> - 8008c64: b11b cbz r3, 8008c6e <_dtoa_r+0xb4e> - 8008c66: f10a 0308 add.w r3, sl, #8 - 8008c6a: 9a21 ldr r2, [sp, #132] @ 0x84 - 8008c6c: 6013 str r3, [r2, #0] - 8008c6e: 4650 mov r0, sl - 8008c70: b017 add sp, #92 @ 0x5c - 8008c72: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8008c76: 9b07 ldr r3, [sp, #28] - 8008c78: 2b01 cmp r3, #1 - 8008c7a: f77f ae2e ble.w 80088da <_dtoa_r+0x7ba> - 8008c7e: 9b0d ldr r3, [sp, #52] @ 0x34 - 8008c80: 9308 str r3, [sp, #32] - 8008c82: 2001 movs r0, #1 - 8008c84: e64d b.n 8008922 <_dtoa_r+0x802> - 8008c86: f1bb 0f00 cmp.w fp, #0 - 8008c8a: f77f aed9 ble.w 8008a40 <_dtoa_r+0x920> - 8008c8e: 4656 mov r6, sl - 8008c90: 9802 ldr r0, [sp, #8] - 8008c92: 4621 mov r1, r4 - 8008c94: f7ff f9bb bl 800800e - 8008c98: f100 0330 add.w r3, r0, #48 @ 0x30 - 8008c9c: f806 3b01 strb.w r3, [r6], #1 - 8008ca0: eba6 020a sub.w r2, r6, sl - 8008ca4: 4593 cmp fp, r2 - 8008ca6: ddb4 ble.n 8008c12 <_dtoa_r+0xaf2> - 8008ca8: 9902 ldr r1, [sp, #8] - 8008caa: 2300 movs r3, #0 - 8008cac: 220a movs r2, #10 - 8008cae: 4648 mov r0, r9 - 8008cb0: f000 f968 bl 8008f84 <__multadd> - 8008cb4: 9002 str r0, [sp, #8] - 8008cb6: e7eb b.n 8008c90 <_dtoa_r+0xb70> - 8008cb8: 0800ba34 .word 0x0800ba34 - 8008cbc: 0800b9b8 .word 0x0800b9b8 +080037f4 <_localeconv_r>: + 80037f4: 4800 ldr r0, [pc, #0] @ (80037f8 <_localeconv_r+0x4>) + 80037f6: 4770 bx lr + 80037f8: 20000158 .word 0x20000158 -08008cc0 <_free_r>: - 8008cc0: b538 push {r3, r4, r5, lr} - 8008cc2: 4605 mov r5, r0 - 8008cc4: 2900 cmp r1, #0 - 8008cc6: d041 beq.n 8008d4c <_free_r+0x8c> - 8008cc8: f851 3c04 ldr.w r3, [r1, #-4] - 8008ccc: 1f0c subs r4, r1, #4 - 8008cce: 2b00 cmp r3, #0 - 8008cd0: bfb8 it lt - 8008cd2: 18e4 addlt r4, r4, r3 - 8008cd4: f000 f8e8 bl 8008ea8 <__malloc_lock> - 8008cd8: 4a1d ldr r2, [pc, #116] @ (8008d50 <_free_r+0x90>) - 8008cda: 6813 ldr r3, [r2, #0] - 8008cdc: b933 cbnz r3, 8008cec <_free_r+0x2c> - 8008cde: 6063 str r3, [r4, #4] - 8008ce0: 6014 str r4, [r2, #0] - 8008ce2: 4628 mov r0, r5 - 8008ce4: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 8008ce8: f000 b8e4 b.w 8008eb4 <__malloc_unlock> - 8008cec: 42a3 cmp r3, r4 - 8008cee: d908 bls.n 8008d02 <_free_r+0x42> - 8008cf0: 6820 ldr r0, [r4, #0] - 8008cf2: 1821 adds r1, r4, r0 - 8008cf4: 428b cmp r3, r1 - 8008cf6: bf01 itttt eq - 8008cf8: 6819 ldreq r1, [r3, #0] - 8008cfa: 685b ldreq r3, [r3, #4] - 8008cfc: 1809 addeq r1, r1, r0 - 8008cfe: 6021 streq r1, [r4, #0] - 8008d00: e7ed b.n 8008cde <_free_r+0x1e> - 8008d02: 461a mov r2, r3 - 8008d04: 685b ldr r3, [r3, #4] - 8008d06: b10b cbz r3, 8008d0c <_free_r+0x4c> - 8008d08: 42a3 cmp r3, r4 - 8008d0a: d9fa bls.n 8008d02 <_free_r+0x42> - 8008d0c: 6811 ldr r1, [r2, #0] - 8008d0e: 1850 adds r0, r2, r1 - 8008d10: 42a0 cmp r0, r4 - 8008d12: d10b bne.n 8008d2c <_free_r+0x6c> - 8008d14: 6820 ldr r0, [r4, #0] - 8008d16: 4401 add r1, r0 - 8008d18: 1850 adds r0, r2, r1 - 8008d1a: 4283 cmp r3, r0 - 8008d1c: 6011 str r1, [r2, #0] - 8008d1e: d1e0 bne.n 8008ce2 <_free_r+0x22> - 8008d20: 6818 ldr r0, [r3, #0] - 8008d22: 685b ldr r3, [r3, #4] - 8008d24: 6053 str r3, [r2, #4] - 8008d26: 4408 add r0, r1 - 8008d28: 6010 str r0, [r2, #0] - 8008d2a: e7da b.n 8008ce2 <_free_r+0x22> - 8008d2c: d902 bls.n 8008d34 <_free_r+0x74> - 8008d2e: 230c movs r3, #12 - 8008d30: 602b str r3, [r5, #0] - 8008d32: e7d6 b.n 8008ce2 <_free_r+0x22> - 8008d34: 6820 ldr r0, [r4, #0] - 8008d36: 1821 adds r1, r4, r0 - 8008d38: 428b cmp r3, r1 - 8008d3a: bf04 itt eq - 8008d3c: 6819 ldreq r1, [r3, #0] - 8008d3e: 685b ldreq r3, [r3, #4] - 8008d40: 6063 str r3, [r4, #4] - 8008d42: bf04 itt eq - 8008d44: 1809 addeq r1, r1, r0 - 8008d46: 6021 streq r1, [r4, #0] - 8008d48: 6054 str r4, [r2, #4] - 8008d4a: e7ca b.n 8008ce2 <_free_r+0x22> - 8008d4c: bd38 pop {r3, r4, r5, pc} - 8008d4e: bf00 nop - 8008d50: 200004ec .word 0x200004ec +080037fc <_close_r>: + 80037fc: b538 push {r3, r4, r5, lr} + 80037fe: 4d06 ldr r5, [pc, #24] @ (8003818 <_close_r+0x1c>) + 8003800: 2300 movs r3, #0 + 8003802: 4604 mov r4, r0 + 8003804: 4608 mov r0, r1 + 8003806: 602b str r3, [r5, #0] + 8003808: f7fd fd45 bl 8001296 <_close> + 800380c: 1c43 adds r3, r0, #1 + 800380e: d102 bne.n 8003816 <_close_r+0x1a> + 8003810: 682b ldr r3, [r5, #0] + 8003812: b103 cbz r3, 8003816 <_close_r+0x1a> + 8003814: 6023 str r3, [r4, #0] + 8003816: bd38 pop {r3, r4, r5, pc} + 8003818: 2000079c .word 0x2000079c -08008d54 : - 8008d54: 4b02 ldr r3, [pc, #8] @ (8008d60 ) - 8008d56: 4601 mov r1, r0 - 8008d58: 6818 ldr r0, [r3, #0] - 8008d5a: f000 b825 b.w 8008da8 <_malloc_r> - 8008d5e: bf00 nop - 8008d60: 20000018 .word 0x20000018 +0800381c <_lseek_r>: + 800381c: b538 push {r3, r4, r5, lr} + 800381e: 4d07 ldr r5, [pc, #28] @ (800383c <_lseek_r+0x20>) + 8003820: 4604 mov r4, r0 + 8003822: 4608 mov r0, r1 + 8003824: 4611 mov r1, r2 + 8003826: 2200 movs r2, #0 + 8003828: 602a str r2, [r5, #0] + 800382a: 461a mov r2, r3 + 800382c: f7fd fd5a bl 80012e4 <_lseek> + 8003830: 1c43 adds r3, r0, #1 + 8003832: d102 bne.n 800383a <_lseek_r+0x1e> + 8003834: 682b ldr r3, [r5, #0] + 8003836: b103 cbz r3, 800383a <_lseek_r+0x1e> + 8003838: 6023 str r3, [r4, #0] + 800383a: bd38 pop {r3, r4, r5, pc} + 800383c: 2000079c .word 0x2000079c -08008d64 : - 8008d64: b570 push {r4, r5, r6, lr} - 8008d66: 4e0f ldr r6, [pc, #60] @ (8008da4 ) - 8008d68: 460c mov r4, r1 - 8008d6a: 6831 ldr r1, [r6, #0] - 8008d6c: 4605 mov r5, r0 - 8008d6e: b911 cbnz r1, 8008d76 - 8008d70: f001 f814 bl 8009d9c <_sbrk_r> - 8008d74: 6030 str r0, [r6, #0] - 8008d76: 4621 mov r1, r4 - 8008d78: 4628 mov r0, r5 - 8008d7a: f001 f80f bl 8009d9c <_sbrk_r> - 8008d7e: 1c43 adds r3, r0, #1 - 8008d80: d103 bne.n 8008d8a - 8008d82: f04f 34ff mov.w r4, #4294967295 - 8008d86: 4620 mov r0, r4 - 8008d88: bd70 pop {r4, r5, r6, pc} - 8008d8a: 1cc4 adds r4, r0, #3 - 8008d8c: f024 0403 bic.w r4, r4, #3 - 8008d90: 42a0 cmp r0, r4 - 8008d92: d0f8 beq.n 8008d86 - 8008d94: 1a21 subs r1, r4, r0 - 8008d96: 4628 mov r0, r5 - 8008d98: f001 f800 bl 8009d9c <_sbrk_r> - 8008d9c: 3001 adds r0, #1 - 8008d9e: d1f2 bne.n 8008d86 - 8008da0: e7ef b.n 8008d82 - 8008da2: bf00 nop - 8008da4: 200004e8 .word 0x200004e8 +08003840 <_read_r>: + 8003840: b538 push {r3, r4, r5, lr} + 8003842: 4d07 ldr r5, [pc, #28] @ (8003860 <_read_r+0x20>) + 8003844: 4604 mov r4, r0 + 8003846: 4608 mov r0, r1 + 8003848: 4611 mov r1, r2 + 800384a: 2200 movs r2, #0 + 800384c: 602a str r2, [r5, #0] + 800384e: 461a mov r2, r3 + 8003850: f7fd fce8 bl 8001224 <_read> + 8003854: 1c43 adds r3, r0, #1 + 8003856: d102 bne.n 800385e <_read_r+0x1e> + 8003858: 682b ldr r3, [r5, #0] + 800385a: b103 cbz r3, 800385e <_read_r+0x1e> + 800385c: 6023 str r3, [r4, #0] + 800385e: bd38 pop {r3, r4, r5, pc} + 8003860: 2000079c .word 0x2000079c -08008da8 <_malloc_r>: - 8008da8: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 8008dac: 1ccd adds r5, r1, #3 - 8008dae: f025 0503 bic.w r5, r5, #3 - 8008db2: 3508 adds r5, #8 - 8008db4: 2d0c cmp r5, #12 - 8008db6: bf38 it cc - 8008db8: 250c movcc r5, #12 - 8008dba: 2d00 cmp r5, #0 - 8008dbc: 4606 mov r6, r0 - 8008dbe: db01 blt.n 8008dc4 <_malloc_r+0x1c> - 8008dc0: 42a9 cmp r1, r5 - 8008dc2: d904 bls.n 8008dce <_malloc_r+0x26> - 8008dc4: 230c movs r3, #12 - 8008dc6: 6033 str r3, [r6, #0] - 8008dc8: 2000 movs r0, #0 - 8008dca: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8008dce: f8df 80d4 ldr.w r8, [pc, #212] @ 8008ea4 <_malloc_r+0xfc> - 8008dd2: f000 f869 bl 8008ea8 <__malloc_lock> - 8008dd6: f8d8 3000 ldr.w r3, [r8] - 8008dda: 461c mov r4, r3 - 8008ddc: bb44 cbnz r4, 8008e30 <_malloc_r+0x88> - 8008dde: 4629 mov r1, r5 - 8008de0: 4630 mov r0, r6 - 8008de2: f7ff ffbf bl 8008d64 - 8008de6: 1c43 adds r3, r0, #1 - 8008de8: 4604 mov r4, r0 - 8008dea: d158 bne.n 8008e9e <_malloc_r+0xf6> - 8008dec: f8d8 4000 ldr.w r4, [r8] - 8008df0: 4627 mov r7, r4 - 8008df2: 2f00 cmp r7, #0 - 8008df4: d143 bne.n 8008e7e <_malloc_r+0xd6> - 8008df6: 2c00 cmp r4, #0 - 8008df8: d04b beq.n 8008e92 <_malloc_r+0xea> - 8008dfa: 6823 ldr r3, [r4, #0] - 8008dfc: 4639 mov r1, r7 - 8008dfe: 4630 mov r0, r6 - 8008e00: eb04 0903 add.w r9, r4, r3 - 8008e04: f000 ffca bl 8009d9c <_sbrk_r> - 8008e08: 4581 cmp r9, r0 - 8008e0a: d142 bne.n 8008e92 <_malloc_r+0xea> - 8008e0c: 6821 ldr r1, [r4, #0] - 8008e0e: 1a6d subs r5, r5, r1 - 8008e10: 4629 mov r1, r5 - 8008e12: 4630 mov r0, r6 - 8008e14: f7ff ffa6 bl 8008d64 - 8008e18: 3001 adds r0, #1 - 8008e1a: d03a beq.n 8008e92 <_malloc_r+0xea> - 8008e1c: 6823 ldr r3, [r4, #0] - 8008e1e: 442b add r3, r5 - 8008e20: 6023 str r3, [r4, #0] - 8008e22: f8d8 3000 ldr.w r3, [r8] - 8008e26: 685a ldr r2, [r3, #4] - 8008e28: bb62 cbnz r2, 8008e84 <_malloc_r+0xdc> - 8008e2a: f8c8 7000 str.w r7, [r8] - 8008e2e: e00f b.n 8008e50 <_malloc_r+0xa8> - 8008e30: 6822 ldr r2, [r4, #0] - 8008e32: 1b52 subs r2, r2, r5 - 8008e34: d420 bmi.n 8008e78 <_malloc_r+0xd0> - 8008e36: 2a0b cmp r2, #11 - 8008e38: d917 bls.n 8008e6a <_malloc_r+0xc2> - 8008e3a: 1961 adds r1, r4, r5 - 8008e3c: 42a3 cmp r3, r4 - 8008e3e: 6025 str r5, [r4, #0] - 8008e40: bf18 it ne - 8008e42: 6059 strne r1, [r3, #4] - 8008e44: 6863 ldr r3, [r4, #4] - 8008e46: bf08 it eq - 8008e48: f8c8 1000 streq.w r1, [r8] - 8008e4c: 5162 str r2, [r4, r5] - 8008e4e: 604b str r3, [r1, #4] - 8008e50: 4630 mov r0, r6 - 8008e52: f000 f82f bl 8008eb4 <__malloc_unlock> - 8008e56: f104 000b add.w r0, r4, #11 - 8008e5a: 1d23 adds r3, r4, #4 - 8008e5c: f020 0007 bic.w r0, r0, #7 - 8008e60: 1ac2 subs r2, r0, r3 - 8008e62: bf1c itt ne - 8008e64: 1a1b subne r3, r3, r0 - 8008e66: 50a3 strne r3, [r4, r2] - 8008e68: e7af b.n 8008dca <_malloc_r+0x22> - 8008e6a: 6862 ldr r2, [r4, #4] - 8008e6c: 42a3 cmp r3, r4 - 8008e6e: bf0c ite eq - 8008e70: f8c8 2000 streq.w r2, [r8] - 8008e74: 605a strne r2, [r3, #4] - 8008e76: e7eb b.n 8008e50 <_malloc_r+0xa8> - 8008e78: 4623 mov r3, r4 - 8008e7a: 6864 ldr r4, [r4, #4] - 8008e7c: e7ae b.n 8008ddc <_malloc_r+0x34> - 8008e7e: 463c mov r4, r7 - 8008e80: 687f ldr r7, [r7, #4] - 8008e82: e7b6 b.n 8008df2 <_malloc_r+0x4a> - 8008e84: 461a mov r2, r3 - 8008e86: 685b ldr r3, [r3, #4] - 8008e88: 42a3 cmp r3, r4 - 8008e8a: d1fb bne.n 8008e84 <_malloc_r+0xdc> - 8008e8c: 2300 movs r3, #0 - 8008e8e: 6053 str r3, [r2, #4] - 8008e90: e7de b.n 8008e50 <_malloc_r+0xa8> - 8008e92: 230c movs r3, #12 - 8008e94: 6033 str r3, [r6, #0] - 8008e96: 4630 mov r0, r6 - 8008e98: f000 f80c bl 8008eb4 <__malloc_unlock> - 8008e9c: e794 b.n 8008dc8 <_malloc_r+0x20> - 8008e9e: 6005 str r5, [r0, #0] - 8008ea0: e7d6 b.n 8008e50 <_malloc_r+0xa8> - 8008ea2: bf00 nop - 8008ea4: 200004ec .word 0x200004ec +08003864 <_write_r>: + 8003864: b538 push {r3, r4, r5, lr} + 8003866: 4d07 ldr r5, [pc, #28] @ (8003884 <_write_r+0x20>) + 8003868: 4604 mov r4, r0 + 800386a: 4608 mov r0, r1 + 800386c: 4611 mov r1, r2 + 800386e: 2200 movs r2, #0 + 8003870: 602a str r2, [r5, #0] + 8003872: 461a mov r2, r3 + 8003874: f7fd fcf3 bl 800125e <_write> + 8003878: 1c43 adds r3, r0, #1 + 800387a: d102 bne.n 8003882 <_write_r+0x1e> + 800387c: 682b ldr r3, [r5, #0] + 800387e: b103 cbz r3, 8003882 <_write_r+0x1e> + 8003880: 6023 str r3, [r4, #0] + 8003882: bd38 pop {r3, r4, r5, pc} + 8003884: 2000079c .word 0x2000079c -08008ea8 <__malloc_lock>: - 8008ea8: 4801 ldr r0, [pc, #4] @ (8008eb0 <__malloc_lock+0x8>) - 8008eaa: f7ff b8ae b.w 800800a <__retarget_lock_acquire_recursive> - 8008eae: bf00 nop - 8008eb0: 200004e4 .word 0x200004e4 +08003888 <__errno>: + 8003888: 4b01 ldr r3, [pc, #4] @ (8003890 <__errno+0x8>) + 800388a: 6818 ldr r0, [r3, #0] + 800388c: 4770 bx lr + 800388e: bf00 nop + 8003890: 20000018 .word 0x20000018 -08008eb4 <__malloc_unlock>: - 8008eb4: 4801 ldr r0, [pc, #4] @ (8008ebc <__malloc_unlock+0x8>) - 8008eb6: f7ff b8a9 b.w 800800c <__retarget_lock_release_recursive> - 8008eba: bf00 nop - 8008ebc: 200004e4 .word 0x200004e4 +08003894 <__libc_init_array>: + 8003894: b570 push {r4, r5, r6, lr} + 8003896: 4d0d ldr r5, [pc, #52] @ (80038cc <__libc_init_array+0x38>) + 8003898: 4c0d ldr r4, [pc, #52] @ (80038d0 <__libc_init_array+0x3c>) + 800389a: 1b64 subs r4, r4, r5 + 800389c: 10a4 asrs r4, r4, #2 + 800389e: 2600 movs r6, #0 + 80038a0: 42a6 cmp r6, r4 + 80038a2: d109 bne.n 80038b8 <__libc_init_array+0x24> + 80038a4: 4d0b ldr r5, [pc, #44] @ (80038d4 <__libc_init_array+0x40>) + 80038a6: 4c0c ldr r4, [pc, #48] @ (80038d8 <__libc_init_array+0x44>) + 80038a8: f001 fec2 bl 8005630 <_init> + 80038ac: 1b64 subs r4, r4, r5 + 80038ae: 10a4 asrs r4, r4, #2 + 80038b0: 2600 movs r6, #0 + 80038b2: 42a6 cmp r6, r4 + 80038b4: d105 bne.n 80038c2 <__libc_init_array+0x2e> + 80038b6: bd70 pop {r4, r5, r6, pc} + 80038b8: f855 3b04 ldr.w r3, [r5], #4 + 80038bc: 4798 blx r3 + 80038be: 3601 adds r6, #1 + 80038c0: e7ee b.n 80038a0 <__libc_init_array+0xc> + 80038c2: f855 3b04 ldr.w r3, [r5], #4 + 80038c6: 4798 blx r3 + 80038c8: 3601 adds r6, #1 + 80038ca: e7f2 b.n 80038b2 <__libc_init_array+0x1e> + 80038cc: 08005a04 .word 0x08005a04 + 80038d0: 08005a04 .word 0x08005a04 + 80038d4: 08005a04 .word 0x08005a04 + 80038d8: 08005a08 .word 0x08005a08 -08008ec0 <_Balloc>: - 8008ec0: b570 push {r4, r5, r6, lr} - 8008ec2: 69c6 ldr r6, [r0, #28] - 8008ec4: 4604 mov r4, r0 - 8008ec6: 460d mov r5, r1 - 8008ec8: b976 cbnz r6, 8008ee8 <_Balloc+0x28> - 8008eca: 2010 movs r0, #16 - 8008ecc: f7ff ff42 bl 8008d54 - 8008ed0: 4602 mov r2, r0 - 8008ed2: 61e0 str r0, [r4, #28] - 8008ed4: b920 cbnz r0, 8008ee0 <_Balloc+0x20> - 8008ed6: 4b18 ldr r3, [pc, #96] @ (8008f38 <_Balloc+0x78>) - 8008ed8: 4818 ldr r0, [pc, #96] @ (8008f3c <_Balloc+0x7c>) - 8008eda: 216b movs r1, #107 @ 0x6b - 8008edc: f000 ff7c bl 8009dd8 <__assert_func> - 8008ee0: e9c0 6601 strd r6, r6, [r0, #4] - 8008ee4: 6006 str r6, [r0, #0] - 8008ee6: 60c6 str r6, [r0, #12] - 8008ee8: 69e6 ldr r6, [r4, #28] - 8008eea: 68f3 ldr r3, [r6, #12] - 8008eec: b183 cbz r3, 8008f10 <_Balloc+0x50> - 8008eee: 69e3 ldr r3, [r4, #28] - 8008ef0: 68db ldr r3, [r3, #12] - 8008ef2: f853 0025 ldr.w r0, [r3, r5, lsl #2] - 8008ef6: b9b8 cbnz r0, 8008f28 <_Balloc+0x68> - 8008ef8: 2101 movs r1, #1 - 8008efa: fa01 f605 lsl.w r6, r1, r5 - 8008efe: 1d72 adds r2, r6, #5 - 8008f00: 0092 lsls r2, r2, #2 - 8008f02: 4620 mov r0, r4 - 8008f04: f000 ff86 bl 8009e14 <_calloc_r> - 8008f08: b160 cbz r0, 8008f24 <_Balloc+0x64> - 8008f0a: e9c0 5601 strd r5, r6, [r0, #4] - 8008f0e: e00e b.n 8008f2e <_Balloc+0x6e> - 8008f10: 2221 movs r2, #33 @ 0x21 - 8008f12: 2104 movs r1, #4 - 8008f14: 4620 mov r0, r4 - 8008f16: f000 ff7d bl 8009e14 <_calloc_r> - 8008f1a: 69e3 ldr r3, [r4, #28] - 8008f1c: 60f0 str r0, [r6, #12] - 8008f1e: 68db ldr r3, [r3, #12] - 8008f20: 2b00 cmp r3, #0 - 8008f22: d1e4 bne.n 8008eee <_Balloc+0x2e> - 8008f24: 2000 movs r0, #0 - 8008f26: bd70 pop {r4, r5, r6, pc} - 8008f28: 6802 ldr r2, [r0, #0] - 8008f2a: f843 2025 str.w r2, [r3, r5, lsl #2] - 8008f2e: 2300 movs r3, #0 - 8008f30: e9c0 3303 strd r3, r3, [r0, #12] - 8008f34: e7f7 b.n 8008f26 <_Balloc+0x66> - 8008f36: bf00 nop - 8008f38: 0800b9c5 .word 0x0800b9c5 - 8008f3c: 0800ba45 .word 0x0800ba45 +080038dc <__retarget_lock_init_recursive>: + 80038dc: 4770 bx lr -08008f40 <_Bfree>: - 8008f40: b570 push {r4, r5, r6, lr} - 8008f42: 69c6 ldr r6, [r0, #28] - 8008f44: 4605 mov r5, r0 - 8008f46: 460c mov r4, r1 - 8008f48: b976 cbnz r6, 8008f68 <_Bfree+0x28> - 8008f4a: 2010 movs r0, #16 - 8008f4c: f7ff ff02 bl 8008d54 - 8008f50: 4602 mov r2, r0 - 8008f52: 61e8 str r0, [r5, #28] - 8008f54: b920 cbnz r0, 8008f60 <_Bfree+0x20> - 8008f56: 4b09 ldr r3, [pc, #36] @ (8008f7c <_Bfree+0x3c>) - 8008f58: 4809 ldr r0, [pc, #36] @ (8008f80 <_Bfree+0x40>) - 8008f5a: 218f movs r1, #143 @ 0x8f - 8008f5c: f000 ff3c bl 8009dd8 <__assert_func> - 8008f60: e9c0 6601 strd r6, r6, [r0, #4] - 8008f64: 6006 str r6, [r0, #0] - 8008f66: 60c6 str r6, [r0, #12] - 8008f68: b13c cbz r4, 8008f7a <_Bfree+0x3a> - 8008f6a: 69eb ldr r3, [r5, #28] - 8008f6c: 6862 ldr r2, [r4, #4] - 8008f6e: 68db ldr r3, [r3, #12] - 8008f70: f853 1022 ldr.w r1, [r3, r2, lsl #2] - 8008f74: 6021 str r1, [r4, #0] - 8008f76: f843 4022 str.w r4, [r3, r2, lsl #2] - 8008f7a: bd70 pop {r4, r5, r6, pc} - 8008f7c: 0800b9c5 .word 0x0800b9c5 - 8008f80: 0800ba45 .word 0x0800ba45 +080038de <__retarget_lock_acquire_recursive>: + 80038de: 4770 bx lr -08008f84 <__multadd>: - 8008f84: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8008f88: 690d ldr r5, [r1, #16] - 8008f8a: 4607 mov r7, r0 - 8008f8c: 460c mov r4, r1 - 8008f8e: 461e mov r6, r3 - 8008f90: f101 0c14 add.w ip, r1, #20 - 8008f94: 2000 movs r0, #0 - 8008f96: f8dc 3000 ldr.w r3, [ip] - 8008f9a: b299 uxth r1, r3 - 8008f9c: fb02 6101 mla r1, r2, r1, r6 - 8008fa0: 0c1e lsrs r6, r3, #16 - 8008fa2: 0c0b lsrs r3, r1, #16 - 8008fa4: fb02 3306 mla r3, r2, r6, r3 - 8008fa8: b289 uxth r1, r1 - 8008faa: 3001 adds r0, #1 - 8008fac: eb01 4103 add.w r1, r1, r3, lsl #16 - 8008fb0: 4285 cmp r5, r0 - 8008fb2: f84c 1b04 str.w r1, [ip], #4 - 8008fb6: ea4f 4613 mov.w r6, r3, lsr #16 - 8008fba: dcec bgt.n 8008f96 <__multadd+0x12> - 8008fbc: b30e cbz r6, 8009002 <__multadd+0x7e> - 8008fbe: 68a3 ldr r3, [r4, #8] - 8008fc0: 42ab cmp r3, r5 - 8008fc2: dc19 bgt.n 8008ff8 <__multadd+0x74> - 8008fc4: 6861 ldr r1, [r4, #4] - 8008fc6: 4638 mov r0, r7 - 8008fc8: 3101 adds r1, #1 - 8008fca: f7ff ff79 bl 8008ec0 <_Balloc> - 8008fce: 4680 mov r8, r0 - 8008fd0: b928 cbnz r0, 8008fde <__multadd+0x5a> - 8008fd2: 4602 mov r2, r0 - 8008fd4: 4b0c ldr r3, [pc, #48] @ (8009008 <__multadd+0x84>) - 8008fd6: 480d ldr r0, [pc, #52] @ (800900c <__multadd+0x88>) - 8008fd8: 21ba movs r1, #186 @ 0xba - 8008fda: f000 fefd bl 8009dd8 <__assert_func> - 8008fde: 6922 ldr r2, [r4, #16] - 8008fe0: 3202 adds r2, #2 - 8008fe2: f104 010c add.w r1, r4, #12 - 8008fe6: 0092 lsls r2, r2, #2 - 8008fe8: 300c adds r0, #12 - 8008fea: f000 fee7 bl 8009dbc - 8008fee: 4621 mov r1, r4 - 8008ff0: 4638 mov r0, r7 - 8008ff2: f7ff ffa5 bl 8008f40 <_Bfree> - 8008ff6: 4644 mov r4, r8 - 8008ff8: eb04 0385 add.w r3, r4, r5, lsl #2 - 8008ffc: 3501 adds r5, #1 - 8008ffe: 615e str r6, [r3, #20] - 8009000: 6125 str r5, [r4, #16] - 8009002: 4620 mov r0, r4 - 8009004: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8009008: 0800ba34 .word 0x0800ba34 - 800900c: 0800ba45 .word 0x0800ba45 +080038e0 <__retarget_lock_release_recursive>: + 80038e0: 4770 bx lr -08009010 <__hi0bits>: - 8009010: f5b0 3f80 cmp.w r0, #65536 @ 0x10000 - 8009014: 4603 mov r3, r0 - 8009016: bf36 itet cc - 8009018: 0403 lslcc r3, r0, #16 - 800901a: 2000 movcs r0, #0 - 800901c: 2010 movcc r0, #16 - 800901e: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 - 8009022: bf3c itt cc - 8009024: 021b lslcc r3, r3, #8 - 8009026: 3008 addcc r0, #8 - 8009028: f1b3 5f80 cmp.w r3, #268435456 @ 0x10000000 - 800902c: bf3c itt cc - 800902e: 011b lslcc r3, r3, #4 - 8009030: 3004 addcc r0, #4 - 8009032: f1b3 4f80 cmp.w r3, #1073741824 @ 0x40000000 - 8009036: bf3c itt cc - 8009038: 009b lslcc r3, r3, #2 - 800903a: 3002 addcc r0, #2 - 800903c: 2b00 cmp r3, #0 - 800903e: db05 blt.n 800904c <__hi0bits+0x3c> - 8009040: f013 4f80 tst.w r3, #1073741824 @ 0x40000000 - 8009044: f100 0001 add.w r0, r0, #1 - 8009048: bf08 it eq - 800904a: 2020 moveq r0, #32 - 800904c: 4770 bx lr - -0800904e <__lo0bits>: - 800904e: 6803 ldr r3, [r0, #0] - 8009050: 4602 mov r2, r0 - 8009052: f013 0007 ands.w r0, r3, #7 - 8009056: d00b beq.n 8009070 <__lo0bits+0x22> - 8009058: 07d9 lsls r1, r3, #31 - 800905a: d421 bmi.n 80090a0 <__lo0bits+0x52> - 800905c: 0798 lsls r0, r3, #30 - 800905e: bf49 itett mi - 8009060: 085b lsrmi r3, r3, #1 - 8009062: 089b lsrpl r3, r3, #2 - 8009064: 2001 movmi r0, #1 - 8009066: 6013 strmi r3, [r2, #0] - 8009068: bf5c itt pl - 800906a: 6013 strpl r3, [r2, #0] - 800906c: 2002 movpl r0, #2 - 800906e: 4770 bx lr - 8009070: b299 uxth r1, r3 - 8009072: b909 cbnz r1, 8009078 <__lo0bits+0x2a> - 8009074: 0c1b lsrs r3, r3, #16 - 8009076: 2010 movs r0, #16 - 8009078: b2d9 uxtb r1, r3 - 800907a: b909 cbnz r1, 8009080 <__lo0bits+0x32> - 800907c: 3008 adds r0, #8 - 800907e: 0a1b lsrs r3, r3, #8 - 8009080: 0719 lsls r1, r3, #28 - 8009082: bf04 itt eq - 8009084: 091b lsreq r3, r3, #4 - 8009086: 3004 addeq r0, #4 - 8009088: 0799 lsls r1, r3, #30 - 800908a: bf04 itt eq - 800908c: 089b lsreq r3, r3, #2 - 800908e: 3002 addeq r0, #2 - 8009090: 07d9 lsls r1, r3, #31 - 8009092: d403 bmi.n 800909c <__lo0bits+0x4e> - 8009094: 085b lsrs r3, r3, #1 - 8009096: f100 0001 add.w r0, r0, #1 - 800909a: d003 beq.n 80090a4 <__lo0bits+0x56> - 800909c: 6013 str r3, [r2, #0] - 800909e: 4770 bx lr - 80090a0: 2000 movs r0, #0 - 80090a2: 4770 bx lr - 80090a4: 2020 movs r0, #32 - 80090a6: 4770 bx lr - -080090a8 <__i2b>: - 80090a8: b510 push {r4, lr} - 80090aa: 460c mov r4, r1 - 80090ac: 2101 movs r1, #1 - 80090ae: f7ff ff07 bl 8008ec0 <_Balloc> - 80090b2: 4602 mov r2, r0 - 80090b4: b928 cbnz r0, 80090c2 <__i2b+0x1a> - 80090b6: 4b05 ldr r3, [pc, #20] @ (80090cc <__i2b+0x24>) - 80090b8: 4805 ldr r0, [pc, #20] @ (80090d0 <__i2b+0x28>) - 80090ba: f240 1145 movw r1, #325 @ 0x145 - 80090be: f000 fe8b bl 8009dd8 <__assert_func> - 80090c2: 2301 movs r3, #1 - 80090c4: 6144 str r4, [r0, #20] - 80090c6: 6103 str r3, [r0, #16] - 80090c8: bd10 pop {r4, pc} - 80090ca: bf00 nop - 80090cc: 0800ba34 .word 0x0800ba34 - 80090d0: 0800ba45 .word 0x0800ba45 - -080090d4 <__multiply>: - 80090d4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80090d8: 4617 mov r7, r2 - 80090da: 690a ldr r2, [r1, #16] - 80090dc: 693b ldr r3, [r7, #16] - 80090de: 429a cmp r2, r3 - 80090e0: bfa8 it ge - 80090e2: 463b movge r3, r7 - 80090e4: 4689 mov r9, r1 - 80090e6: bfa4 itt ge - 80090e8: 460f movge r7, r1 - 80090ea: 4699 movge r9, r3 - 80090ec: 693d ldr r5, [r7, #16] - 80090ee: f8d9 a010 ldr.w sl, [r9, #16] - 80090f2: 68bb ldr r3, [r7, #8] - 80090f4: 6879 ldr r1, [r7, #4] - 80090f6: eb05 060a add.w r6, r5, sl - 80090fa: 42b3 cmp r3, r6 - 80090fc: b085 sub sp, #20 - 80090fe: bfb8 it lt - 8009100: 3101 addlt r1, #1 - 8009102: f7ff fedd bl 8008ec0 <_Balloc> - 8009106: b930 cbnz r0, 8009116 <__multiply+0x42> - 8009108: 4602 mov r2, r0 - 800910a: 4b41 ldr r3, [pc, #260] @ (8009210 <__multiply+0x13c>) - 800910c: 4841 ldr r0, [pc, #260] @ (8009214 <__multiply+0x140>) - 800910e: f44f 71b1 mov.w r1, #354 @ 0x162 - 8009112: f000 fe61 bl 8009dd8 <__assert_func> - 8009116: f100 0414 add.w r4, r0, #20 - 800911a: eb04 0e86 add.w lr, r4, r6, lsl #2 - 800911e: 4623 mov r3, r4 - 8009120: 2200 movs r2, #0 - 8009122: 4573 cmp r3, lr - 8009124: d320 bcc.n 8009168 <__multiply+0x94> - 8009126: f107 0814 add.w r8, r7, #20 - 800912a: f109 0114 add.w r1, r9, #20 - 800912e: eb08 0585 add.w r5, r8, r5, lsl #2 - 8009132: eb01 038a add.w r3, r1, sl, lsl #2 - 8009136: 9302 str r3, [sp, #8] - 8009138: 1beb subs r3, r5, r7 - 800913a: 3b15 subs r3, #21 - 800913c: f023 0303 bic.w r3, r3, #3 - 8009140: 3304 adds r3, #4 - 8009142: 3715 adds r7, #21 - 8009144: 42bd cmp r5, r7 - 8009146: bf38 it cc - 8009148: 2304 movcc r3, #4 - 800914a: 9301 str r3, [sp, #4] - 800914c: 9b02 ldr r3, [sp, #8] - 800914e: 9103 str r1, [sp, #12] - 8009150: 428b cmp r3, r1 - 8009152: d80c bhi.n 800916e <__multiply+0x9a> - 8009154: 2e00 cmp r6, #0 - 8009156: dd03 ble.n 8009160 <__multiply+0x8c> - 8009158: f85e 3d04 ldr.w r3, [lr, #-4]! - 800915c: 2b00 cmp r3, #0 - 800915e: d055 beq.n 800920c <__multiply+0x138> - 8009160: 6106 str r6, [r0, #16] - 8009162: b005 add sp, #20 - 8009164: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8009168: f843 2b04 str.w r2, [r3], #4 - 800916c: e7d9 b.n 8009122 <__multiply+0x4e> - 800916e: f8b1 a000 ldrh.w sl, [r1] - 8009172: f1ba 0f00 cmp.w sl, #0 - 8009176: d01f beq.n 80091b8 <__multiply+0xe4> - 8009178: 46c4 mov ip, r8 - 800917a: 46a1 mov r9, r4 - 800917c: 2700 movs r7, #0 - 800917e: f85c 2b04 ldr.w r2, [ip], #4 - 8009182: f8d9 3000 ldr.w r3, [r9] - 8009186: fa1f fb82 uxth.w fp, r2 - 800918a: b29b uxth r3, r3 - 800918c: fb0a 330b mla r3, sl, fp, r3 - 8009190: 443b add r3, r7 - 8009192: f8d9 7000 ldr.w r7, [r9] - 8009196: 0c12 lsrs r2, r2, #16 - 8009198: 0c3f lsrs r7, r7, #16 - 800919a: fb0a 7202 mla r2, sl, r2, r7 - 800919e: eb02 4213 add.w r2, r2, r3, lsr #16 - 80091a2: b29b uxth r3, r3 - 80091a4: ea43 4302 orr.w r3, r3, r2, lsl #16 - 80091a8: 4565 cmp r5, ip - 80091aa: f849 3b04 str.w r3, [r9], #4 - 80091ae: ea4f 4712 mov.w r7, r2, lsr #16 - 80091b2: d8e4 bhi.n 800917e <__multiply+0xaa> - 80091b4: 9b01 ldr r3, [sp, #4] - 80091b6: 50e7 str r7, [r4, r3] - 80091b8: 9b03 ldr r3, [sp, #12] - 80091ba: f8b3 9002 ldrh.w r9, [r3, #2] - 80091be: 3104 adds r1, #4 - 80091c0: f1b9 0f00 cmp.w r9, #0 - 80091c4: d020 beq.n 8009208 <__multiply+0x134> - 80091c6: 6823 ldr r3, [r4, #0] - 80091c8: 4647 mov r7, r8 - 80091ca: 46a4 mov ip, r4 - 80091cc: f04f 0a00 mov.w sl, #0 - 80091d0: f8b7 b000 ldrh.w fp, [r7] - 80091d4: f8bc 2002 ldrh.w r2, [ip, #2] - 80091d8: fb09 220b mla r2, r9, fp, r2 - 80091dc: 4452 add r2, sl - 80091de: b29b uxth r3, r3 - 80091e0: ea43 4302 orr.w r3, r3, r2, lsl #16 - 80091e4: f84c 3b04 str.w r3, [ip], #4 - 80091e8: f857 3b04 ldr.w r3, [r7], #4 - 80091ec: ea4f 4a13 mov.w sl, r3, lsr #16 - 80091f0: f8bc 3000 ldrh.w r3, [ip] - 80091f4: fb09 330a mla r3, r9, sl, r3 - 80091f8: eb03 4312 add.w r3, r3, r2, lsr #16 - 80091fc: 42bd cmp r5, r7 - 80091fe: ea4f 4a13 mov.w sl, r3, lsr #16 - 8009202: d8e5 bhi.n 80091d0 <__multiply+0xfc> - 8009204: 9a01 ldr r2, [sp, #4] - 8009206: 50a3 str r3, [r4, r2] - 8009208: 3404 adds r4, #4 - 800920a: e79f b.n 800914c <__multiply+0x78> - 800920c: 3e01 subs r6, #1 - 800920e: e7a1 b.n 8009154 <__multiply+0x80> - 8009210: 0800ba34 .word 0x0800ba34 - 8009214: 0800ba45 .word 0x0800ba45 - -08009218 <__pow5mult>: - 8009218: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 800921c: 4615 mov r5, r2 - 800921e: f012 0203 ands.w r2, r2, #3 - 8009222: 4607 mov r7, r0 - 8009224: 460e mov r6, r1 - 8009226: d007 beq.n 8009238 <__pow5mult+0x20> - 8009228: 4c25 ldr r4, [pc, #148] @ (80092c0 <__pow5mult+0xa8>) - 800922a: 3a01 subs r2, #1 - 800922c: 2300 movs r3, #0 - 800922e: f854 2022 ldr.w r2, [r4, r2, lsl #2] - 8009232: f7ff fea7 bl 8008f84 <__multadd> - 8009236: 4606 mov r6, r0 - 8009238: 10ad asrs r5, r5, #2 - 800923a: d03d beq.n 80092b8 <__pow5mult+0xa0> - 800923c: 69fc ldr r4, [r7, #28] - 800923e: b97c cbnz r4, 8009260 <__pow5mult+0x48> - 8009240: 2010 movs r0, #16 - 8009242: f7ff fd87 bl 8008d54 - 8009246: 4602 mov r2, r0 - 8009248: 61f8 str r0, [r7, #28] - 800924a: b928 cbnz r0, 8009258 <__pow5mult+0x40> - 800924c: 4b1d ldr r3, [pc, #116] @ (80092c4 <__pow5mult+0xac>) - 800924e: 481e ldr r0, [pc, #120] @ (80092c8 <__pow5mult+0xb0>) - 8009250: f240 11b3 movw r1, #435 @ 0x1b3 - 8009254: f000 fdc0 bl 8009dd8 <__assert_func> - 8009258: e9c0 4401 strd r4, r4, [r0, #4] - 800925c: 6004 str r4, [r0, #0] - 800925e: 60c4 str r4, [r0, #12] - 8009260: f8d7 801c ldr.w r8, [r7, #28] - 8009264: f8d8 4008 ldr.w r4, [r8, #8] - 8009268: b94c cbnz r4, 800927e <__pow5mult+0x66> - 800926a: f240 2171 movw r1, #625 @ 0x271 - 800926e: 4638 mov r0, r7 - 8009270: f7ff ff1a bl 80090a8 <__i2b> - 8009274: 2300 movs r3, #0 - 8009276: f8c8 0008 str.w r0, [r8, #8] - 800927a: 4604 mov r4, r0 - 800927c: 6003 str r3, [r0, #0] - 800927e: f04f 0900 mov.w r9, #0 - 8009282: 07eb lsls r3, r5, #31 - 8009284: d50a bpl.n 800929c <__pow5mult+0x84> - 8009286: 4631 mov r1, r6 - 8009288: 4622 mov r2, r4 - 800928a: 4638 mov r0, r7 - 800928c: f7ff ff22 bl 80090d4 <__multiply> - 8009290: 4631 mov r1, r6 - 8009292: 4680 mov r8, r0 - 8009294: 4638 mov r0, r7 - 8009296: f7ff fe53 bl 8008f40 <_Bfree> - 800929a: 4646 mov r6, r8 - 800929c: 106d asrs r5, r5, #1 - 800929e: d00b beq.n 80092b8 <__pow5mult+0xa0> - 80092a0: 6820 ldr r0, [r4, #0] - 80092a2: b938 cbnz r0, 80092b4 <__pow5mult+0x9c> - 80092a4: 4622 mov r2, r4 - 80092a6: 4621 mov r1, r4 - 80092a8: 4638 mov r0, r7 - 80092aa: f7ff ff13 bl 80090d4 <__multiply> - 80092ae: 6020 str r0, [r4, #0] - 80092b0: f8c0 9000 str.w r9, [r0] - 80092b4: 4604 mov r4, r0 - 80092b6: e7e4 b.n 8009282 <__pow5mult+0x6a> - 80092b8: 4630 mov r0, r6 - 80092ba: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 80092be: bf00 nop - 80092c0: 0800baf8 .word 0x0800baf8 - 80092c4: 0800b9c5 .word 0x0800b9c5 - 80092c8: 0800ba45 .word 0x0800ba45 - -080092cc <__lshift>: - 80092cc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80092d0: 460c mov r4, r1 - 80092d2: 6849 ldr r1, [r1, #4] - 80092d4: 6923 ldr r3, [r4, #16] - 80092d6: eb03 1862 add.w r8, r3, r2, asr #5 - 80092da: 68a3 ldr r3, [r4, #8] - 80092dc: 4607 mov r7, r0 - 80092de: 4691 mov r9, r2 - 80092e0: ea4f 1a62 mov.w sl, r2, asr #5 - 80092e4: f108 0601 add.w r6, r8, #1 - 80092e8: 42b3 cmp r3, r6 - 80092ea: db0b blt.n 8009304 <__lshift+0x38> - 80092ec: 4638 mov r0, r7 - 80092ee: f7ff fde7 bl 8008ec0 <_Balloc> - 80092f2: 4605 mov r5, r0 - 80092f4: b948 cbnz r0, 800930a <__lshift+0x3e> - 80092f6: 4602 mov r2, r0 - 80092f8: 4b28 ldr r3, [pc, #160] @ (800939c <__lshift+0xd0>) - 80092fa: 4829 ldr r0, [pc, #164] @ (80093a0 <__lshift+0xd4>) - 80092fc: f44f 71ef mov.w r1, #478 @ 0x1de - 8009300: f000 fd6a bl 8009dd8 <__assert_func> - 8009304: 3101 adds r1, #1 - 8009306: 005b lsls r3, r3, #1 - 8009308: e7ee b.n 80092e8 <__lshift+0x1c> - 800930a: 2300 movs r3, #0 - 800930c: f100 0114 add.w r1, r0, #20 - 8009310: f100 0210 add.w r2, r0, #16 - 8009314: 4618 mov r0, r3 - 8009316: 4553 cmp r3, sl - 8009318: db33 blt.n 8009382 <__lshift+0xb6> - 800931a: 6920 ldr r0, [r4, #16] - 800931c: ea2a 7aea bic.w sl, sl, sl, asr #31 - 8009320: f104 0314 add.w r3, r4, #20 - 8009324: f019 091f ands.w r9, r9, #31 - 8009328: eb01 018a add.w r1, r1, sl, lsl #2 - 800932c: eb03 0c80 add.w ip, r3, r0, lsl #2 - 8009330: d02b beq.n 800938a <__lshift+0xbe> - 8009332: f1c9 0e20 rsb lr, r9, #32 - 8009336: 468a mov sl, r1 - 8009338: 2200 movs r2, #0 - 800933a: 6818 ldr r0, [r3, #0] - 800933c: fa00 f009 lsl.w r0, r0, r9 - 8009340: 4310 orrs r0, r2 - 8009342: f84a 0b04 str.w r0, [sl], #4 - 8009346: f853 2b04 ldr.w r2, [r3], #4 - 800934a: 459c cmp ip, r3 - 800934c: fa22 f20e lsr.w r2, r2, lr - 8009350: d8f3 bhi.n 800933a <__lshift+0x6e> - 8009352: ebac 0304 sub.w r3, ip, r4 - 8009356: 3b15 subs r3, #21 - 8009358: f023 0303 bic.w r3, r3, #3 - 800935c: 3304 adds r3, #4 - 800935e: f104 0015 add.w r0, r4, #21 - 8009362: 4560 cmp r0, ip - 8009364: bf88 it hi - 8009366: 2304 movhi r3, #4 - 8009368: 50ca str r2, [r1, r3] - 800936a: b10a cbz r2, 8009370 <__lshift+0xa4> - 800936c: f108 0602 add.w r6, r8, #2 - 8009370: 3e01 subs r6, #1 - 8009372: 4638 mov r0, r7 - 8009374: 612e str r6, [r5, #16] - 8009376: 4621 mov r1, r4 - 8009378: f7ff fde2 bl 8008f40 <_Bfree> - 800937c: 4628 mov r0, r5 - 800937e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8009382: f842 0f04 str.w r0, [r2, #4]! - 8009386: 3301 adds r3, #1 - 8009388: e7c5 b.n 8009316 <__lshift+0x4a> - 800938a: 3904 subs r1, #4 - 800938c: f853 2b04 ldr.w r2, [r3], #4 - 8009390: f841 2f04 str.w r2, [r1, #4]! - 8009394: 459c cmp ip, r3 - 8009396: d8f9 bhi.n 800938c <__lshift+0xc0> - 8009398: e7ea b.n 8009370 <__lshift+0xa4> - 800939a: bf00 nop - 800939c: 0800ba34 .word 0x0800ba34 - 80093a0: 0800ba45 .word 0x0800ba45 - -080093a4 <__mcmp>: - 80093a4: 690a ldr r2, [r1, #16] - 80093a6: 4603 mov r3, r0 - 80093a8: 6900 ldr r0, [r0, #16] - 80093aa: 1a80 subs r0, r0, r2 - 80093ac: b530 push {r4, r5, lr} - 80093ae: d10e bne.n 80093ce <__mcmp+0x2a> - 80093b0: 3314 adds r3, #20 - 80093b2: 3114 adds r1, #20 - 80093b4: eb03 0482 add.w r4, r3, r2, lsl #2 - 80093b8: eb01 0182 add.w r1, r1, r2, lsl #2 - 80093bc: f854 5d04 ldr.w r5, [r4, #-4]! - 80093c0: f851 2d04 ldr.w r2, [r1, #-4]! - 80093c4: 4295 cmp r5, r2 - 80093c6: d003 beq.n 80093d0 <__mcmp+0x2c> - 80093c8: d205 bcs.n 80093d6 <__mcmp+0x32> - 80093ca: f04f 30ff mov.w r0, #4294967295 - 80093ce: bd30 pop {r4, r5, pc} - 80093d0: 42a3 cmp r3, r4 - 80093d2: d3f3 bcc.n 80093bc <__mcmp+0x18> - 80093d4: e7fb b.n 80093ce <__mcmp+0x2a> - 80093d6: 2001 movs r0, #1 - 80093d8: e7f9 b.n 80093ce <__mcmp+0x2a> +080038e2 : + 80038e2: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} + 80038e6: 6903 ldr r3, [r0, #16] + 80038e8: 690c ldr r4, [r1, #16] + 80038ea: 42a3 cmp r3, r4 + 80038ec: 4607 mov r7, r0 + 80038ee: db7e blt.n 80039ee + 80038f0: 3c01 subs r4, #1 + 80038f2: f101 0814 add.w r8, r1, #20 + 80038f6: 00a3 lsls r3, r4, #2 + 80038f8: f100 0514 add.w r5, r0, #20 + 80038fc: 9300 str r3, [sp, #0] + 80038fe: eb05 0384 add.w r3, r5, r4, lsl #2 + 8003902: 9301 str r3, [sp, #4] + 8003904: f858 3024 ldr.w r3, [r8, r4, lsl #2] + 8003908: f855 2024 ldr.w r2, [r5, r4, lsl #2] + 800390c: 3301 adds r3, #1 + 800390e: 429a cmp r2, r3 + 8003910: eb08 0984 add.w r9, r8, r4, lsl #2 + 8003914: fbb2 f6f3 udiv r6, r2, r3 + 8003918: d32e bcc.n 8003978 + 800391a: f04f 0a00 mov.w sl, #0 + 800391e: 46c4 mov ip, r8 + 8003920: 46ae mov lr, r5 + 8003922: 46d3 mov fp, sl + 8003924: f85c 3b04 ldr.w r3, [ip], #4 + 8003928: b298 uxth r0, r3 + 800392a: fb06 a000 mla r0, r6, r0, sl + 800392e: 0c02 lsrs r2, r0, #16 + 8003930: 0c1b lsrs r3, r3, #16 + 8003932: fb06 2303 mla r3, r6, r3, r2 + 8003936: f8de 2000 ldr.w r2, [lr] + 800393a: b280 uxth r0, r0 + 800393c: b292 uxth r2, r2 + 800393e: 1a12 subs r2, r2, r0 + 8003940: 445a add r2, fp + 8003942: f8de 0000 ldr.w r0, [lr] + 8003946: ea4f 4a13 mov.w sl, r3, lsr #16 + 800394a: b29b uxth r3, r3 + 800394c: ebc3 4322 rsb r3, r3, r2, asr #16 + 8003950: eb03 4310 add.w r3, r3, r0, lsr #16 + 8003954: b292 uxth r2, r2 + 8003956: ea42 4203 orr.w r2, r2, r3, lsl #16 + 800395a: 45e1 cmp r9, ip + 800395c: f84e 2b04 str.w r2, [lr], #4 + 8003960: ea4f 4b23 mov.w fp, r3, asr #16 + 8003964: d2de bcs.n 8003924 + 8003966: 9b00 ldr r3, [sp, #0] + 8003968: 58eb ldr r3, [r5, r3] + 800396a: b92b cbnz r3, 8003978 + 800396c: 9b01 ldr r3, [sp, #4] + 800396e: 3b04 subs r3, #4 + 8003970: 429d cmp r5, r3 + 8003972: 461a mov r2, r3 + 8003974: d32f bcc.n 80039d6 + 8003976: 613c str r4, [r7, #16] + 8003978: 4638 mov r0, r7 + 800397a: f001 f97f bl 8004c7c <__mcmp> + 800397e: 2800 cmp r0, #0 + 8003980: db25 blt.n 80039ce + 8003982: 4629 mov r1, r5 + 8003984: 2000 movs r0, #0 + 8003986: f858 2b04 ldr.w r2, [r8], #4 + 800398a: f8d1 c000 ldr.w ip, [r1] + 800398e: fa1f fe82 uxth.w lr, r2 + 8003992: fa1f f38c uxth.w r3, ip + 8003996: eba3 030e sub.w r3, r3, lr + 800399a: 4403 add r3, r0 + 800399c: 0c12 lsrs r2, r2, #16 + 800399e: ebc2 4223 rsb r2, r2, r3, asr #16 + 80039a2: eb02 421c add.w r2, r2, ip, lsr #16 + 80039a6: b29b uxth r3, r3 + 80039a8: ea43 4302 orr.w r3, r3, r2, lsl #16 + 80039ac: 45c1 cmp r9, r8 + 80039ae: f841 3b04 str.w r3, [r1], #4 + 80039b2: ea4f 4022 mov.w r0, r2, asr #16 + 80039b6: d2e6 bcs.n 8003986 + 80039b8: f855 2024 ldr.w r2, [r5, r4, lsl #2] + 80039bc: eb05 0384 add.w r3, r5, r4, lsl #2 + 80039c0: b922 cbnz r2, 80039cc + 80039c2: 3b04 subs r3, #4 + 80039c4: 429d cmp r5, r3 + 80039c6: 461a mov r2, r3 + 80039c8: d30b bcc.n 80039e2 + 80039ca: 613c str r4, [r7, #16] + 80039cc: 3601 adds r6, #1 + 80039ce: 4630 mov r0, r6 + 80039d0: b003 add sp, #12 + 80039d2: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 80039d6: 6812 ldr r2, [r2, #0] + 80039d8: 3b04 subs r3, #4 + 80039da: 2a00 cmp r2, #0 + 80039dc: d1cb bne.n 8003976 + 80039de: 3c01 subs r4, #1 + 80039e0: e7c6 b.n 8003970 + 80039e2: 6812 ldr r2, [r2, #0] + 80039e4: 3b04 subs r3, #4 + 80039e6: 2a00 cmp r2, #0 + 80039e8: d1ef bne.n 80039ca + 80039ea: 3c01 subs r4, #1 + 80039ec: e7ea b.n 80039c4 + 80039ee: 2000 movs r0, #0 + 80039f0: e7ee b.n 80039d0 + 80039f2: 0000 movs r0, r0 + 80039f4: 0000 movs r0, r0 ... -080093dc <__mdiff>: - 80093dc: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80093e0: 4689 mov r9, r1 - 80093e2: 4606 mov r6, r0 - 80093e4: 4611 mov r1, r2 - 80093e6: 4648 mov r0, r9 - 80093e8: 4614 mov r4, r2 - 80093ea: f7ff ffdb bl 80093a4 <__mcmp> - 80093ee: 1e05 subs r5, r0, #0 - 80093f0: d112 bne.n 8009418 <__mdiff+0x3c> - 80093f2: 4629 mov r1, r5 - 80093f4: 4630 mov r0, r6 - 80093f6: f7ff fd63 bl 8008ec0 <_Balloc> - 80093fa: 4602 mov r2, r0 - 80093fc: b928 cbnz r0, 800940a <__mdiff+0x2e> - 80093fe: 4b3f ldr r3, [pc, #252] @ (80094fc <__mdiff+0x120>) - 8009400: f240 2137 movw r1, #567 @ 0x237 - 8009404: 483e ldr r0, [pc, #248] @ (8009500 <__mdiff+0x124>) - 8009406: f000 fce7 bl 8009dd8 <__assert_func> - 800940a: 2301 movs r3, #1 - 800940c: e9c0 3504 strd r3, r5, [r0, #16] - 8009410: 4610 mov r0, r2 - 8009412: b003 add sp, #12 - 8009414: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8009418: bfbc itt lt - 800941a: 464b movlt r3, r9 - 800941c: 46a1 movlt r9, r4 - 800941e: 4630 mov r0, r6 - 8009420: f8d9 1004 ldr.w r1, [r9, #4] - 8009424: bfba itte lt - 8009426: 461c movlt r4, r3 - 8009428: 2501 movlt r5, #1 - 800942a: 2500 movge r5, #0 - 800942c: f7ff fd48 bl 8008ec0 <_Balloc> - 8009430: 4602 mov r2, r0 - 8009432: b918 cbnz r0, 800943c <__mdiff+0x60> - 8009434: 4b31 ldr r3, [pc, #196] @ (80094fc <__mdiff+0x120>) - 8009436: f240 2145 movw r1, #581 @ 0x245 - 800943a: e7e3 b.n 8009404 <__mdiff+0x28> - 800943c: f8d9 7010 ldr.w r7, [r9, #16] - 8009440: 6926 ldr r6, [r4, #16] - 8009442: 60c5 str r5, [r0, #12] - 8009444: f109 0310 add.w r3, r9, #16 - 8009448: f109 0514 add.w r5, r9, #20 - 800944c: f104 0e14 add.w lr, r4, #20 - 8009450: f100 0b14 add.w fp, r0, #20 - 8009454: eb05 0887 add.w r8, r5, r7, lsl #2 - 8009458: eb0e 0686 add.w r6, lr, r6, lsl #2 - 800945c: 9301 str r3, [sp, #4] - 800945e: 46d9 mov r9, fp - 8009460: f04f 0c00 mov.w ip, #0 - 8009464: 9b01 ldr r3, [sp, #4] - 8009466: f85e 0b04 ldr.w r0, [lr], #4 - 800946a: f853 af04 ldr.w sl, [r3, #4]! - 800946e: 9301 str r3, [sp, #4] - 8009470: fa1f f38a uxth.w r3, sl - 8009474: 4619 mov r1, r3 - 8009476: b283 uxth r3, r0 - 8009478: 1acb subs r3, r1, r3 - 800947a: 0c00 lsrs r0, r0, #16 - 800947c: 4463 add r3, ip - 800947e: ebc0 401a rsb r0, r0, sl, lsr #16 - 8009482: eb00 4023 add.w r0, r0, r3, asr #16 - 8009486: b29b uxth r3, r3 - 8009488: ea43 4300 orr.w r3, r3, r0, lsl #16 - 800948c: 4576 cmp r6, lr - 800948e: f849 3b04 str.w r3, [r9], #4 - 8009492: ea4f 4c20 mov.w ip, r0, asr #16 - 8009496: d8e5 bhi.n 8009464 <__mdiff+0x88> - 8009498: 1b33 subs r3, r6, r4 - 800949a: 3b15 subs r3, #21 - 800949c: f023 0303 bic.w r3, r3, #3 - 80094a0: 3415 adds r4, #21 - 80094a2: 3304 adds r3, #4 - 80094a4: 42a6 cmp r6, r4 - 80094a6: bf38 it cc - 80094a8: 2304 movcc r3, #4 - 80094aa: 441d add r5, r3 - 80094ac: 445b add r3, fp - 80094ae: 461e mov r6, r3 - 80094b0: 462c mov r4, r5 - 80094b2: 4544 cmp r4, r8 - 80094b4: d30e bcc.n 80094d4 <__mdiff+0xf8> - 80094b6: f108 0103 add.w r1, r8, #3 - 80094ba: 1b49 subs r1, r1, r5 - 80094bc: f021 0103 bic.w r1, r1, #3 - 80094c0: 3d03 subs r5, #3 - 80094c2: 45a8 cmp r8, r5 - 80094c4: bf38 it cc - 80094c6: 2100 movcc r1, #0 - 80094c8: 440b add r3, r1 - 80094ca: f853 1d04 ldr.w r1, [r3, #-4]! - 80094ce: b191 cbz r1, 80094f6 <__mdiff+0x11a> - 80094d0: 6117 str r7, [r2, #16] - 80094d2: e79d b.n 8009410 <__mdiff+0x34> - 80094d4: f854 1b04 ldr.w r1, [r4], #4 - 80094d8: 46e6 mov lr, ip - 80094da: 0c08 lsrs r0, r1, #16 - 80094dc: fa1c fc81 uxtah ip, ip, r1 - 80094e0: 4471 add r1, lr - 80094e2: eb00 402c add.w r0, r0, ip, asr #16 - 80094e6: b289 uxth r1, r1 - 80094e8: ea41 4100 orr.w r1, r1, r0, lsl #16 - 80094ec: f846 1b04 str.w r1, [r6], #4 - 80094f0: ea4f 4c20 mov.w ip, r0, asr #16 - 80094f4: e7dd b.n 80094b2 <__mdiff+0xd6> - 80094f6: 3f01 subs r7, #1 - 80094f8: e7e7 b.n 80094ca <__mdiff+0xee> - 80094fa: bf00 nop - 80094fc: 0800ba34 .word 0x0800ba34 - 8009500: 0800ba45 .word 0x0800ba45 +080039f8 <_dtoa_r>: + 80039f8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 80039fc: 69c7 ldr r7, [r0, #28] + 80039fe: b097 sub sp, #92 @ 0x5c + 8003a00: ed8d 0b04 vstr d0, [sp, #16] + 8003a04: ec55 4b10 vmov r4, r5, d0 + 8003a08: 9e20 ldr r6, [sp, #128] @ 0x80 + 8003a0a: 9107 str r1, [sp, #28] + 8003a0c: 4681 mov r9, r0 + 8003a0e: 920c str r2, [sp, #48] @ 0x30 + 8003a10: 9311 str r3, [sp, #68] @ 0x44 + 8003a12: b97f cbnz r7, 8003a34 <_dtoa_r+0x3c> + 8003a14: 2010 movs r0, #16 + 8003a16: f000 fe09 bl 800462c + 8003a1a: 4602 mov r2, r0 + 8003a1c: f8c9 001c str.w r0, [r9, #28] + 8003a20: b920 cbnz r0, 8003a2c <_dtoa_r+0x34> + 8003a22: 4ba9 ldr r3, [pc, #676] @ (8003cc8 <_dtoa_r+0x2d0>) + 8003a24: 21ef movs r1, #239 @ 0xef + 8003a26: 48a9 ldr r0, [pc, #676] @ (8003ccc <_dtoa_r+0x2d4>) + 8003a28: f001 fafa bl 8005020 <__assert_func> + 8003a2c: e9c0 7701 strd r7, r7, [r0, #4] + 8003a30: 6007 str r7, [r0, #0] + 8003a32: 60c7 str r7, [r0, #12] + 8003a34: f8d9 301c ldr.w r3, [r9, #28] + 8003a38: 6819 ldr r1, [r3, #0] + 8003a3a: b159 cbz r1, 8003a54 <_dtoa_r+0x5c> + 8003a3c: 685a ldr r2, [r3, #4] + 8003a3e: 604a str r2, [r1, #4] + 8003a40: 2301 movs r3, #1 + 8003a42: 4093 lsls r3, r2 + 8003a44: 608b str r3, [r1, #8] + 8003a46: 4648 mov r0, r9 + 8003a48: f000 fee6 bl 8004818 <_Bfree> + 8003a4c: f8d9 301c ldr.w r3, [r9, #28] + 8003a50: 2200 movs r2, #0 + 8003a52: 601a str r2, [r3, #0] + 8003a54: 1e2b subs r3, r5, #0 + 8003a56: bfb9 ittee lt + 8003a58: f023 4300 biclt.w r3, r3, #2147483648 @ 0x80000000 + 8003a5c: 9305 strlt r3, [sp, #20] + 8003a5e: 2300 movge r3, #0 + 8003a60: 6033 strge r3, [r6, #0] + 8003a62: 9f05 ldr r7, [sp, #20] + 8003a64: 4b9a ldr r3, [pc, #616] @ (8003cd0 <_dtoa_r+0x2d8>) + 8003a66: bfbc itt lt + 8003a68: 2201 movlt r2, #1 + 8003a6a: 6032 strlt r2, [r6, #0] + 8003a6c: 43bb bics r3, r7 + 8003a6e: d112 bne.n 8003a96 <_dtoa_r+0x9e> + 8003a70: 9a11 ldr r2, [sp, #68] @ 0x44 + 8003a72: f242 730f movw r3, #9999 @ 0x270f + 8003a76: 6013 str r3, [r2, #0] + 8003a78: f3c7 0313 ubfx r3, r7, #0, #20 + 8003a7c: 4323 orrs r3, r4 + 8003a7e: f000 855a beq.w 8004536 <_dtoa_r+0xb3e> + 8003a82: 9b21 ldr r3, [sp, #132] @ 0x84 + 8003a84: f8df a25c ldr.w sl, [pc, #604] @ 8003ce4 <_dtoa_r+0x2ec> + 8003a88: 2b00 cmp r3, #0 + 8003a8a: f000 855c beq.w 8004546 <_dtoa_r+0xb4e> + 8003a8e: f10a 0303 add.w r3, sl, #3 + 8003a92: f000 bd56 b.w 8004542 <_dtoa_r+0xb4a> + 8003a96: ed9d 7b04 vldr d7, [sp, #16] + 8003a9a: 2200 movs r2, #0 + 8003a9c: ec51 0b17 vmov r0, r1, d7 + 8003aa0: 2300 movs r3, #0 + 8003aa2: ed8d 7b0a vstr d7, [sp, #40] @ 0x28 + 8003aa6: f7fd f817 bl 8000ad8 <__aeabi_dcmpeq> + 8003aaa: 4680 mov r8, r0 + 8003aac: b158 cbz r0, 8003ac6 <_dtoa_r+0xce> + 8003aae: 9a11 ldr r2, [sp, #68] @ 0x44 + 8003ab0: 2301 movs r3, #1 + 8003ab2: 6013 str r3, [r2, #0] + 8003ab4: 9b21 ldr r3, [sp, #132] @ 0x84 + 8003ab6: b113 cbz r3, 8003abe <_dtoa_r+0xc6> + 8003ab8: 9a21 ldr r2, [sp, #132] @ 0x84 + 8003aba: 4b86 ldr r3, [pc, #536] @ (8003cd4 <_dtoa_r+0x2dc>) + 8003abc: 6013 str r3, [r2, #0] + 8003abe: f8df a228 ldr.w sl, [pc, #552] @ 8003ce8 <_dtoa_r+0x2f0> + 8003ac2: f000 bd40 b.w 8004546 <_dtoa_r+0xb4e> + 8003ac6: ed9d 0b0a vldr d0, [sp, #40] @ 0x28 + 8003aca: aa14 add r2, sp, #80 @ 0x50 + 8003acc: a915 add r1, sp, #84 @ 0x54 + 8003ace: 4648 mov r0, r9 + 8003ad0: f001 f984 bl 8004ddc <__d2b> + 8003ad4: f3c7 560a ubfx r6, r7, #20, #11 + 8003ad8: 9002 str r0, [sp, #8] + 8003ada: 2e00 cmp r6, #0 + 8003adc: d078 beq.n 8003bd0 <_dtoa_r+0x1d8> + 8003ade: 9b0b ldr r3, [sp, #44] @ 0x2c + 8003ae0: f8cd 8048 str.w r8, [sp, #72] @ 0x48 + 8003ae4: f3c3 0313 ubfx r3, r3, #0, #20 + 8003ae8: e9dd 010a ldrd r0, r1, [sp, #40] @ 0x28 + 8003aec: f043 537f orr.w r3, r3, #1069547520 @ 0x3fc00000 + 8003af0: f443 1340 orr.w r3, r3, #3145728 @ 0x300000 + 8003af4: f2a6 36ff subw r6, r6, #1023 @ 0x3ff + 8003af8: 4619 mov r1, r3 + 8003afa: 2200 movs r2, #0 + 8003afc: 4b76 ldr r3, [pc, #472] @ (8003cd8 <_dtoa_r+0x2e0>) + 8003afe: f7fc fbcb bl 8000298 <__aeabi_dsub> + 8003b02: a36b add r3, pc, #428 @ (adr r3, 8003cb0 <_dtoa_r+0x2b8>) + 8003b04: e9d3 2300 ldrd r2, r3, [r3] + 8003b08: f7fc fd7e bl 8000608 <__aeabi_dmul> + 8003b0c: a36a add r3, pc, #424 @ (adr r3, 8003cb8 <_dtoa_r+0x2c0>) + 8003b0e: e9d3 2300 ldrd r2, r3, [r3] + 8003b12: f7fc fbc3 bl 800029c <__adddf3> + 8003b16: 4604 mov r4, r0 + 8003b18: 4630 mov r0, r6 + 8003b1a: 460d mov r5, r1 + 8003b1c: f7fc fd0a bl 8000534 <__aeabi_i2d> + 8003b20: a367 add r3, pc, #412 @ (adr r3, 8003cc0 <_dtoa_r+0x2c8>) + 8003b22: e9d3 2300 ldrd r2, r3, [r3] + 8003b26: f7fc fd6f bl 8000608 <__aeabi_dmul> + 8003b2a: 4602 mov r2, r0 + 8003b2c: 460b mov r3, r1 + 8003b2e: 4620 mov r0, r4 + 8003b30: 4629 mov r1, r5 + 8003b32: f7fc fbb3 bl 800029c <__adddf3> + 8003b36: 4604 mov r4, r0 + 8003b38: 460d mov r5, r1 + 8003b3a: f7fd f815 bl 8000b68 <__aeabi_d2iz> + 8003b3e: 2200 movs r2, #0 + 8003b40: 4607 mov r7, r0 + 8003b42: 2300 movs r3, #0 + 8003b44: 4620 mov r0, r4 + 8003b46: 4629 mov r1, r5 + 8003b48: f7fc ffd0 bl 8000aec <__aeabi_dcmplt> + 8003b4c: b140 cbz r0, 8003b60 <_dtoa_r+0x168> + 8003b4e: 4638 mov r0, r7 + 8003b50: f7fc fcf0 bl 8000534 <__aeabi_i2d> + 8003b54: 4622 mov r2, r4 + 8003b56: 462b mov r3, r5 + 8003b58: f7fc ffbe bl 8000ad8 <__aeabi_dcmpeq> + 8003b5c: b900 cbnz r0, 8003b60 <_dtoa_r+0x168> + 8003b5e: 3f01 subs r7, #1 + 8003b60: 2f16 cmp r7, #22 + 8003b62: d852 bhi.n 8003c0a <_dtoa_r+0x212> + 8003b64: 4b5d ldr r3, [pc, #372] @ (8003cdc <_dtoa_r+0x2e4>) + 8003b66: eb03 03c7 add.w r3, r3, r7, lsl #3 + 8003b6a: e9d3 2300 ldrd r2, r3, [r3] + 8003b6e: e9dd 010a ldrd r0, r1, [sp, #40] @ 0x28 + 8003b72: f7fc ffbb bl 8000aec <__aeabi_dcmplt> + 8003b76: 2800 cmp r0, #0 + 8003b78: d049 beq.n 8003c0e <_dtoa_r+0x216> + 8003b7a: 3f01 subs r7, #1 + 8003b7c: 2300 movs r3, #0 + 8003b7e: 9310 str r3, [sp, #64] @ 0x40 + 8003b80: 9b14 ldr r3, [sp, #80] @ 0x50 + 8003b82: 1b9b subs r3, r3, r6 + 8003b84: 1e5a subs r2, r3, #1 + 8003b86: bf45 ittet mi + 8003b88: f1c3 0301 rsbmi r3, r3, #1 + 8003b8c: 9300 strmi r3, [sp, #0] + 8003b8e: 2300 movpl r3, #0 + 8003b90: 2300 movmi r3, #0 + 8003b92: 9206 str r2, [sp, #24] + 8003b94: bf54 ite pl + 8003b96: 9300 strpl r3, [sp, #0] + 8003b98: 9306 strmi r3, [sp, #24] + 8003b9a: 2f00 cmp r7, #0 + 8003b9c: db39 blt.n 8003c12 <_dtoa_r+0x21a> + 8003b9e: 9b06 ldr r3, [sp, #24] + 8003ba0: 970d str r7, [sp, #52] @ 0x34 + 8003ba2: 443b add r3, r7 + 8003ba4: 9306 str r3, [sp, #24] + 8003ba6: 2300 movs r3, #0 + 8003ba8: 9308 str r3, [sp, #32] + 8003baa: 9b07 ldr r3, [sp, #28] + 8003bac: 2b09 cmp r3, #9 + 8003bae: d863 bhi.n 8003c78 <_dtoa_r+0x280> + 8003bb0: 2b05 cmp r3, #5 + 8003bb2: bfc4 itt gt + 8003bb4: 3b04 subgt r3, #4 + 8003bb6: 9307 strgt r3, [sp, #28] + 8003bb8: 9b07 ldr r3, [sp, #28] + 8003bba: f1a3 0302 sub.w r3, r3, #2 + 8003bbe: bfcc ite gt + 8003bc0: 2400 movgt r4, #0 + 8003bc2: 2401 movle r4, #1 + 8003bc4: 2b03 cmp r3, #3 + 8003bc6: d863 bhi.n 8003c90 <_dtoa_r+0x298> + 8003bc8: e8df f003 tbb [pc, r3] + 8003bcc: 2b375452 .word 0x2b375452 + 8003bd0: e9dd 6314 ldrd r6, r3, [sp, #80] @ 0x50 + 8003bd4: 441e add r6, r3 + 8003bd6: f206 4332 addw r3, r6, #1074 @ 0x432 + 8003bda: 2b20 cmp r3, #32 + 8003bdc: bfc1 itttt gt + 8003bde: f1c3 0340 rsbgt r3, r3, #64 @ 0x40 + 8003be2: 409f lslgt r7, r3 + 8003be4: f206 4312 addwgt r3, r6, #1042 @ 0x412 + 8003be8: fa24 f303 lsrgt.w r3, r4, r3 + 8003bec: bfd6 itet le + 8003bee: f1c3 0320 rsble r3, r3, #32 + 8003bf2: ea47 0003 orrgt.w r0, r7, r3 + 8003bf6: fa04 f003 lslle.w r0, r4, r3 + 8003bfa: f7fc fc8b bl 8000514 <__aeabi_ui2d> + 8003bfe: 2201 movs r2, #1 + 8003c00: f1a1 73f8 sub.w r3, r1, #32505856 @ 0x1f00000 + 8003c04: 3e01 subs r6, #1 + 8003c06: 9212 str r2, [sp, #72] @ 0x48 + 8003c08: e776 b.n 8003af8 <_dtoa_r+0x100> + 8003c0a: 2301 movs r3, #1 + 8003c0c: e7b7 b.n 8003b7e <_dtoa_r+0x186> + 8003c0e: 9010 str r0, [sp, #64] @ 0x40 + 8003c10: e7b6 b.n 8003b80 <_dtoa_r+0x188> + 8003c12: 9b00 ldr r3, [sp, #0] + 8003c14: 1bdb subs r3, r3, r7 + 8003c16: 9300 str r3, [sp, #0] + 8003c18: 427b negs r3, r7 + 8003c1a: 9308 str r3, [sp, #32] + 8003c1c: 2300 movs r3, #0 + 8003c1e: 930d str r3, [sp, #52] @ 0x34 + 8003c20: e7c3 b.n 8003baa <_dtoa_r+0x1b2> + 8003c22: 2301 movs r3, #1 + 8003c24: 9309 str r3, [sp, #36] @ 0x24 + 8003c26: 9b0c ldr r3, [sp, #48] @ 0x30 + 8003c28: eb07 0b03 add.w fp, r7, r3 + 8003c2c: f10b 0301 add.w r3, fp, #1 + 8003c30: 2b01 cmp r3, #1 + 8003c32: 9303 str r3, [sp, #12] + 8003c34: bfb8 it lt + 8003c36: 2301 movlt r3, #1 + 8003c38: e006 b.n 8003c48 <_dtoa_r+0x250> + 8003c3a: 2301 movs r3, #1 + 8003c3c: 9309 str r3, [sp, #36] @ 0x24 + 8003c3e: 9b0c ldr r3, [sp, #48] @ 0x30 + 8003c40: 2b00 cmp r3, #0 + 8003c42: dd28 ble.n 8003c96 <_dtoa_r+0x29e> + 8003c44: 469b mov fp, r3 + 8003c46: 9303 str r3, [sp, #12] + 8003c48: f8d9 001c ldr.w r0, [r9, #28] + 8003c4c: 2100 movs r1, #0 + 8003c4e: 2204 movs r2, #4 + 8003c50: f102 0514 add.w r5, r2, #20 + 8003c54: 429d cmp r5, r3 + 8003c56: d926 bls.n 8003ca6 <_dtoa_r+0x2ae> + 8003c58: 6041 str r1, [r0, #4] + 8003c5a: 4648 mov r0, r9 + 8003c5c: f000 fd9c bl 8004798 <_Balloc> + 8003c60: 4682 mov sl, r0 + 8003c62: 2800 cmp r0, #0 + 8003c64: d142 bne.n 8003cec <_dtoa_r+0x2f4> + 8003c66: 4b1e ldr r3, [pc, #120] @ (8003ce0 <_dtoa_r+0x2e8>) + 8003c68: 4602 mov r2, r0 + 8003c6a: f240 11af movw r1, #431 @ 0x1af + 8003c6e: e6da b.n 8003a26 <_dtoa_r+0x2e> + 8003c70: 2300 movs r3, #0 + 8003c72: e7e3 b.n 8003c3c <_dtoa_r+0x244> + 8003c74: 2300 movs r3, #0 + 8003c76: e7d5 b.n 8003c24 <_dtoa_r+0x22c> + 8003c78: 2401 movs r4, #1 + 8003c7a: 2300 movs r3, #0 + 8003c7c: 9307 str r3, [sp, #28] + 8003c7e: 9409 str r4, [sp, #36] @ 0x24 + 8003c80: f04f 3bff mov.w fp, #4294967295 + 8003c84: 2200 movs r2, #0 + 8003c86: f8cd b00c str.w fp, [sp, #12] + 8003c8a: 2312 movs r3, #18 + 8003c8c: 920c str r2, [sp, #48] @ 0x30 + 8003c8e: e7db b.n 8003c48 <_dtoa_r+0x250> + 8003c90: 2301 movs r3, #1 + 8003c92: 9309 str r3, [sp, #36] @ 0x24 + 8003c94: e7f4 b.n 8003c80 <_dtoa_r+0x288> + 8003c96: f04f 0b01 mov.w fp, #1 + 8003c9a: f8cd b00c str.w fp, [sp, #12] + 8003c9e: 465b mov r3, fp + 8003ca0: f8cd b030 str.w fp, [sp, #48] @ 0x30 + 8003ca4: e7d0 b.n 8003c48 <_dtoa_r+0x250> + 8003ca6: 3101 adds r1, #1 + 8003ca8: 0052 lsls r2, r2, #1 + 8003caa: e7d1 b.n 8003c50 <_dtoa_r+0x258> + 8003cac: f3af 8000 nop.w + 8003cb0: 636f4361 .word 0x636f4361 + 8003cb4: 3fd287a7 .word 0x3fd287a7 + 8003cb8: 8b60c8b3 .word 0x8b60c8b3 + 8003cbc: 3fc68a28 .word 0x3fc68a28 + 8003cc0: 509f79fb .word 0x509f79fb + 8003cc4: 3fd34413 .word 0x3fd34413 + 8003cc8: 080056c9 .word 0x080056c9 + 8003ccc: 080056e0 .word 0x080056e0 + 8003cd0: 7ff00000 .word 0x7ff00000 + 8003cd4: 08005699 .word 0x08005699 + 8003cd8: 3ff80000 .word 0x3ff80000 + 8003cdc: 08005830 .word 0x08005830 + 8003ce0: 08005738 .word 0x08005738 + 8003ce4: 080056c5 .word 0x080056c5 + 8003ce8: 08005698 .word 0x08005698 + 8003cec: f8d9 301c ldr.w r3, [r9, #28] + 8003cf0: 6018 str r0, [r3, #0] + 8003cf2: 9b03 ldr r3, [sp, #12] + 8003cf4: 2b0e cmp r3, #14 + 8003cf6: f200 80a1 bhi.w 8003e3c <_dtoa_r+0x444> + 8003cfa: 2c00 cmp r4, #0 + 8003cfc: f000 809e beq.w 8003e3c <_dtoa_r+0x444> + 8003d00: 2f00 cmp r7, #0 + 8003d02: dd33 ble.n 8003d6c <_dtoa_r+0x374> + 8003d04: 4b9c ldr r3, [pc, #624] @ (8003f78 <_dtoa_r+0x580>) + 8003d06: f007 020f and.w r2, r7, #15 + 8003d0a: eb03 03c2 add.w r3, r3, r2, lsl #3 + 8003d0e: ed93 7b00 vldr d7, [r3] + 8003d12: 05f8 lsls r0, r7, #23 + 8003d14: ed8d 7b0e vstr d7, [sp, #56] @ 0x38 + 8003d18: ea4f 1427 mov.w r4, r7, asr #4 + 8003d1c: d516 bpl.n 8003d4c <_dtoa_r+0x354> + 8003d1e: 4b97 ldr r3, [pc, #604] @ (8003f7c <_dtoa_r+0x584>) + 8003d20: e9dd 010a ldrd r0, r1, [sp, #40] @ 0x28 + 8003d24: e9d3 2308 ldrd r2, r3, [r3, #32] + 8003d28: f7fc fd98 bl 800085c <__aeabi_ddiv> + 8003d2c: e9cd 0104 strd r0, r1, [sp, #16] + 8003d30: f004 040f and.w r4, r4, #15 + 8003d34: 2603 movs r6, #3 + 8003d36: 4d91 ldr r5, [pc, #580] @ (8003f7c <_dtoa_r+0x584>) + 8003d38: b954 cbnz r4, 8003d50 <_dtoa_r+0x358> + 8003d3a: e9dd 230e ldrd r2, r3, [sp, #56] @ 0x38 + 8003d3e: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003d42: f7fc fd8b bl 800085c <__aeabi_ddiv> + 8003d46: e9cd 0104 strd r0, r1, [sp, #16] + 8003d4a: e028 b.n 8003d9e <_dtoa_r+0x3a6> + 8003d4c: 2602 movs r6, #2 + 8003d4e: e7f2 b.n 8003d36 <_dtoa_r+0x33e> + 8003d50: 07e1 lsls r1, r4, #31 + 8003d52: d508 bpl.n 8003d66 <_dtoa_r+0x36e> + 8003d54: e9dd 010e ldrd r0, r1, [sp, #56] @ 0x38 + 8003d58: e9d5 2300 ldrd r2, r3, [r5] + 8003d5c: f7fc fc54 bl 8000608 <__aeabi_dmul> + 8003d60: e9cd 010e strd r0, r1, [sp, #56] @ 0x38 + 8003d64: 3601 adds r6, #1 + 8003d66: 1064 asrs r4, r4, #1 + 8003d68: 3508 adds r5, #8 + 8003d6a: e7e5 b.n 8003d38 <_dtoa_r+0x340> + 8003d6c: f000 80af beq.w 8003ece <_dtoa_r+0x4d6> + 8003d70: 427c negs r4, r7 + 8003d72: 4b81 ldr r3, [pc, #516] @ (8003f78 <_dtoa_r+0x580>) + 8003d74: 4d81 ldr r5, [pc, #516] @ (8003f7c <_dtoa_r+0x584>) + 8003d76: f004 020f and.w r2, r4, #15 + 8003d7a: eb03 03c2 add.w r3, r3, r2, lsl #3 + 8003d7e: e9d3 2300 ldrd r2, r3, [r3] + 8003d82: e9dd 010a ldrd r0, r1, [sp, #40] @ 0x28 + 8003d86: f7fc fc3f bl 8000608 <__aeabi_dmul> + 8003d8a: e9cd 0104 strd r0, r1, [sp, #16] + 8003d8e: 1124 asrs r4, r4, #4 + 8003d90: 2300 movs r3, #0 + 8003d92: 2602 movs r6, #2 + 8003d94: 2c00 cmp r4, #0 + 8003d96: f040 808f bne.w 8003eb8 <_dtoa_r+0x4c0> + 8003d9a: 2b00 cmp r3, #0 + 8003d9c: d1d3 bne.n 8003d46 <_dtoa_r+0x34e> + 8003d9e: 9b10 ldr r3, [sp, #64] @ 0x40 + 8003da0: e9dd 4504 ldrd r4, r5, [sp, #16] + 8003da4: 2b00 cmp r3, #0 + 8003da6: f000 8094 beq.w 8003ed2 <_dtoa_r+0x4da> + 8003daa: 4b75 ldr r3, [pc, #468] @ (8003f80 <_dtoa_r+0x588>) + 8003dac: 2200 movs r2, #0 + 8003dae: 4620 mov r0, r4 + 8003db0: 4629 mov r1, r5 + 8003db2: f7fc fe9b bl 8000aec <__aeabi_dcmplt> + 8003db6: 2800 cmp r0, #0 + 8003db8: f000 808b beq.w 8003ed2 <_dtoa_r+0x4da> + 8003dbc: 9b03 ldr r3, [sp, #12] + 8003dbe: 2b00 cmp r3, #0 + 8003dc0: f000 8087 beq.w 8003ed2 <_dtoa_r+0x4da> + 8003dc4: f1bb 0f00 cmp.w fp, #0 + 8003dc8: dd34 ble.n 8003e34 <_dtoa_r+0x43c> + 8003dca: 4620 mov r0, r4 + 8003dcc: 4b6d ldr r3, [pc, #436] @ (8003f84 <_dtoa_r+0x58c>) + 8003dce: 2200 movs r2, #0 + 8003dd0: 4629 mov r1, r5 + 8003dd2: f7fc fc19 bl 8000608 <__aeabi_dmul> + 8003dd6: e9cd 0104 strd r0, r1, [sp, #16] + 8003dda: f107 38ff add.w r8, r7, #4294967295 + 8003dde: 3601 adds r6, #1 + 8003de0: 465c mov r4, fp + 8003de2: 4630 mov r0, r6 + 8003de4: f7fc fba6 bl 8000534 <__aeabi_i2d> + 8003de8: e9dd 2304 ldrd r2, r3, [sp, #16] + 8003dec: f7fc fc0c bl 8000608 <__aeabi_dmul> + 8003df0: 4b65 ldr r3, [pc, #404] @ (8003f88 <_dtoa_r+0x590>) + 8003df2: 2200 movs r2, #0 + 8003df4: f7fc fa52 bl 800029c <__adddf3> + 8003df8: 4605 mov r5, r0 + 8003dfa: f1a1 7650 sub.w r6, r1, #54525952 @ 0x3400000 + 8003dfe: 2c00 cmp r4, #0 + 8003e00: d16a bne.n 8003ed8 <_dtoa_r+0x4e0> + 8003e02: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003e06: 4b61 ldr r3, [pc, #388] @ (8003f8c <_dtoa_r+0x594>) + 8003e08: 2200 movs r2, #0 + 8003e0a: f7fc fa45 bl 8000298 <__aeabi_dsub> + 8003e0e: 4602 mov r2, r0 + 8003e10: 460b mov r3, r1 + 8003e12: e9cd 2304 strd r2, r3, [sp, #16] + 8003e16: 462a mov r2, r5 + 8003e18: 4633 mov r3, r6 + 8003e1a: f7fc fe85 bl 8000b28 <__aeabi_dcmpgt> + 8003e1e: 2800 cmp r0, #0 + 8003e20: f040 8298 bne.w 8004354 <_dtoa_r+0x95c> + 8003e24: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003e28: 462a mov r2, r5 + 8003e2a: f106 4300 add.w r3, r6, #2147483648 @ 0x80000000 + 8003e2e: f7fc fe5d bl 8000aec <__aeabi_dcmplt> + 8003e32: bb38 cbnz r0, 8003e84 <_dtoa_r+0x48c> + 8003e34: e9dd 340a ldrd r3, r4, [sp, #40] @ 0x28 + 8003e38: e9cd 3404 strd r3, r4, [sp, #16] + 8003e3c: 9b15 ldr r3, [sp, #84] @ 0x54 + 8003e3e: 2b00 cmp r3, #0 + 8003e40: f2c0 8157 blt.w 80040f2 <_dtoa_r+0x6fa> + 8003e44: 2f0e cmp r7, #14 + 8003e46: f300 8154 bgt.w 80040f2 <_dtoa_r+0x6fa> + 8003e4a: 4b4b ldr r3, [pc, #300] @ (8003f78 <_dtoa_r+0x580>) + 8003e4c: eb03 03c7 add.w r3, r3, r7, lsl #3 + 8003e50: ed93 7b00 vldr d7, [r3] + 8003e54: 9b0c ldr r3, [sp, #48] @ 0x30 + 8003e56: 2b00 cmp r3, #0 + 8003e58: ed8d 7b00 vstr d7, [sp] + 8003e5c: f280 80e5 bge.w 800402a <_dtoa_r+0x632> + 8003e60: 9b03 ldr r3, [sp, #12] + 8003e62: 2b00 cmp r3, #0 + 8003e64: f300 80e1 bgt.w 800402a <_dtoa_r+0x632> + 8003e68: d10c bne.n 8003e84 <_dtoa_r+0x48c> + 8003e6a: 4b48 ldr r3, [pc, #288] @ (8003f8c <_dtoa_r+0x594>) + 8003e6c: 2200 movs r2, #0 + 8003e6e: ec51 0b17 vmov r0, r1, d7 + 8003e72: f7fc fbc9 bl 8000608 <__aeabi_dmul> + 8003e76: e9dd 2304 ldrd r2, r3, [sp, #16] + 8003e7a: f7fc fe4b bl 8000b14 <__aeabi_dcmpge> + 8003e7e: 2800 cmp r0, #0 + 8003e80: f000 8266 beq.w 8004350 <_dtoa_r+0x958> + 8003e84: 2400 movs r4, #0 + 8003e86: 4625 mov r5, r4 + 8003e88: 9b0c ldr r3, [sp, #48] @ 0x30 + 8003e8a: 4656 mov r6, sl + 8003e8c: ea6f 0803 mvn.w r8, r3 + 8003e90: 2700 movs r7, #0 + 8003e92: 4621 mov r1, r4 + 8003e94: 4648 mov r0, r9 + 8003e96: f000 fcbf bl 8004818 <_Bfree> + 8003e9a: 2d00 cmp r5, #0 + 8003e9c: f000 80bd beq.w 800401a <_dtoa_r+0x622> + 8003ea0: b12f cbz r7, 8003eae <_dtoa_r+0x4b6> + 8003ea2: 42af cmp r7, r5 + 8003ea4: d003 beq.n 8003eae <_dtoa_r+0x4b6> + 8003ea6: 4639 mov r1, r7 + 8003ea8: 4648 mov r0, r9 + 8003eaa: f000 fcb5 bl 8004818 <_Bfree> + 8003eae: 4629 mov r1, r5 + 8003eb0: 4648 mov r0, r9 + 8003eb2: f000 fcb1 bl 8004818 <_Bfree> + 8003eb6: e0b0 b.n 800401a <_dtoa_r+0x622> + 8003eb8: 07e2 lsls r2, r4, #31 + 8003eba: d505 bpl.n 8003ec8 <_dtoa_r+0x4d0> + 8003ebc: e9d5 2300 ldrd r2, r3, [r5] + 8003ec0: f7fc fba2 bl 8000608 <__aeabi_dmul> + 8003ec4: 3601 adds r6, #1 + 8003ec6: 2301 movs r3, #1 + 8003ec8: 1064 asrs r4, r4, #1 + 8003eca: 3508 adds r5, #8 + 8003ecc: e762 b.n 8003d94 <_dtoa_r+0x39c> + 8003ece: 2602 movs r6, #2 + 8003ed0: e765 b.n 8003d9e <_dtoa_r+0x3a6> + 8003ed2: 9c03 ldr r4, [sp, #12] + 8003ed4: 46b8 mov r8, r7 + 8003ed6: e784 b.n 8003de2 <_dtoa_r+0x3ea> + 8003ed8: 4b27 ldr r3, [pc, #156] @ (8003f78 <_dtoa_r+0x580>) + 8003eda: 9909 ldr r1, [sp, #36] @ 0x24 + 8003edc: eb03 03c4 add.w r3, r3, r4, lsl #3 + 8003ee0: e953 2302 ldrd r2, r3, [r3, #-8] + 8003ee4: 4454 add r4, sl + 8003ee6: 2900 cmp r1, #0 + 8003ee8: d054 beq.n 8003f94 <_dtoa_r+0x59c> + 8003eea: 4929 ldr r1, [pc, #164] @ (8003f90 <_dtoa_r+0x598>) + 8003eec: 2000 movs r0, #0 + 8003eee: f7fc fcb5 bl 800085c <__aeabi_ddiv> + 8003ef2: 4633 mov r3, r6 + 8003ef4: 462a mov r2, r5 + 8003ef6: f7fc f9cf bl 8000298 <__aeabi_dsub> + 8003efa: e9cd 010e strd r0, r1, [sp, #56] @ 0x38 + 8003efe: 4656 mov r6, sl + 8003f00: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003f04: f7fc fe30 bl 8000b68 <__aeabi_d2iz> + 8003f08: 4605 mov r5, r0 + 8003f0a: f7fc fb13 bl 8000534 <__aeabi_i2d> + 8003f0e: 4602 mov r2, r0 + 8003f10: 460b mov r3, r1 + 8003f12: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003f16: f7fc f9bf bl 8000298 <__aeabi_dsub> + 8003f1a: 3530 adds r5, #48 @ 0x30 + 8003f1c: 4602 mov r2, r0 + 8003f1e: 460b mov r3, r1 + 8003f20: e9cd 2304 strd r2, r3, [sp, #16] + 8003f24: f806 5b01 strb.w r5, [r6], #1 + 8003f28: e9dd 230e ldrd r2, r3, [sp, #56] @ 0x38 + 8003f2c: f7fc fdde bl 8000aec <__aeabi_dcmplt> + 8003f30: 2800 cmp r0, #0 + 8003f32: d172 bne.n 800401a <_dtoa_r+0x622> + 8003f34: e9dd 2304 ldrd r2, r3, [sp, #16] + 8003f38: 4911 ldr r1, [pc, #68] @ (8003f80 <_dtoa_r+0x588>) + 8003f3a: 2000 movs r0, #0 + 8003f3c: f7fc f9ac bl 8000298 <__aeabi_dsub> + 8003f40: e9dd 230e ldrd r2, r3, [sp, #56] @ 0x38 + 8003f44: f7fc fdd2 bl 8000aec <__aeabi_dcmplt> + 8003f48: 2800 cmp r0, #0 + 8003f4a: f040 80b4 bne.w 80040b6 <_dtoa_r+0x6be> + 8003f4e: 42a6 cmp r6, r4 + 8003f50: f43f af70 beq.w 8003e34 <_dtoa_r+0x43c> + 8003f54: e9dd 010e ldrd r0, r1, [sp, #56] @ 0x38 + 8003f58: 4b0a ldr r3, [pc, #40] @ (8003f84 <_dtoa_r+0x58c>) + 8003f5a: 2200 movs r2, #0 + 8003f5c: f7fc fb54 bl 8000608 <__aeabi_dmul> + 8003f60: 4b08 ldr r3, [pc, #32] @ (8003f84 <_dtoa_r+0x58c>) + 8003f62: e9cd 010e strd r0, r1, [sp, #56] @ 0x38 + 8003f66: 2200 movs r2, #0 + 8003f68: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003f6c: f7fc fb4c bl 8000608 <__aeabi_dmul> + 8003f70: e9cd 0104 strd r0, r1, [sp, #16] + 8003f74: e7c4 b.n 8003f00 <_dtoa_r+0x508> + 8003f76: bf00 nop + 8003f78: 08005830 .word 0x08005830 + 8003f7c: 08005808 .word 0x08005808 + 8003f80: 3ff00000 .word 0x3ff00000 + 8003f84: 40240000 .word 0x40240000 + 8003f88: 401c0000 .word 0x401c0000 + 8003f8c: 40140000 .word 0x40140000 + 8003f90: 3fe00000 .word 0x3fe00000 + 8003f94: 4631 mov r1, r6 + 8003f96: 4628 mov r0, r5 + 8003f98: f7fc fb36 bl 8000608 <__aeabi_dmul> + 8003f9c: e9cd 010e strd r0, r1, [sp, #56] @ 0x38 + 8003fa0: 9413 str r4, [sp, #76] @ 0x4c + 8003fa2: 4656 mov r6, sl + 8003fa4: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003fa8: f7fc fdde bl 8000b68 <__aeabi_d2iz> + 8003fac: 4605 mov r5, r0 + 8003fae: f7fc fac1 bl 8000534 <__aeabi_i2d> + 8003fb2: 4602 mov r2, r0 + 8003fb4: 460b mov r3, r1 + 8003fb6: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003fba: f7fc f96d bl 8000298 <__aeabi_dsub> + 8003fbe: 3530 adds r5, #48 @ 0x30 + 8003fc0: f806 5b01 strb.w r5, [r6], #1 + 8003fc4: 4602 mov r2, r0 + 8003fc6: 460b mov r3, r1 + 8003fc8: 42a6 cmp r6, r4 + 8003fca: e9cd 2304 strd r2, r3, [sp, #16] + 8003fce: f04f 0200 mov.w r2, #0 + 8003fd2: d124 bne.n 800401e <_dtoa_r+0x626> + 8003fd4: 4baf ldr r3, [pc, #700] @ (8004294 <_dtoa_r+0x89c>) + 8003fd6: e9dd 010e ldrd r0, r1, [sp, #56] @ 0x38 + 8003fda: f7fc f95f bl 800029c <__adddf3> + 8003fde: 4602 mov r2, r0 + 8003fe0: 460b mov r3, r1 + 8003fe2: e9dd 0104 ldrd r0, r1, [sp, #16] + 8003fe6: f7fc fd9f bl 8000b28 <__aeabi_dcmpgt> + 8003fea: 2800 cmp r0, #0 + 8003fec: d163 bne.n 80040b6 <_dtoa_r+0x6be> + 8003fee: e9dd 230e ldrd r2, r3, [sp, #56] @ 0x38 + 8003ff2: 49a8 ldr r1, [pc, #672] @ (8004294 <_dtoa_r+0x89c>) + 8003ff4: 2000 movs r0, #0 + 8003ff6: f7fc f94f bl 8000298 <__aeabi_dsub> + 8003ffa: 4602 mov r2, r0 + 8003ffc: 460b mov r3, r1 + 8003ffe: e9dd 0104 ldrd r0, r1, [sp, #16] + 8004002: f7fc fd73 bl 8000aec <__aeabi_dcmplt> + 8004006: 2800 cmp r0, #0 + 8004008: f43f af14 beq.w 8003e34 <_dtoa_r+0x43c> + 800400c: 9e13 ldr r6, [sp, #76] @ 0x4c + 800400e: 1e73 subs r3, r6, #1 + 8004010: 9313 str r3, [sp, #76] @ 0x4c + 8004012: f816 3c01 ldrb.w r3, [r6, #-1] + 8004016: 2b30 cmp r3, #48 @ 0x30 + 8004018: d0f8 beq.n 800400c <_dtoa_r+0x614> + 800401a: 4647 mov r7, r8 + 800401c: e03b b.n 8004096 <_dtoa_r+0x69e> + 800401e: 4b9e ldr r3, [pc, #632] @ (8004298 <_dtoa_r+0x8a0>) + 8004020: f7fc faf2 bl 8000608 <__aeabi_dmul> + 8004024: e9cd 0104 strd r0, r1, [sp, #16] + 8004028: e7bc b.n 8003fa4 <_dtoa_r+0x5ac> + 800402a: e9dd 4504 ldrd r4, r5, [sp, #16] + 800402e: 4656 mov r6, sl + 8004030: e9dd 2300 ldrd r2, r3, [sp] + 8004034: 4620 mov r0, r4 + 8004036: 4629 mov r1, r5 + 8004038: f7fc fc10 bl 800085c <__aeabi_ddiv> + 800403c: f7fc fd94 bl 8000b68 <__aeabi_d2iz> + 8004040: 4680 mov r8, r0 + 8004042: f7fc fa77 bl 8000534 <__aeabi_i2d> + 8004046: e9dd 2300 ldrd r2, r3, [sp] + 800404a: f7fc fadd bl 8000608 <__aeabi_dmul> + 800404e: 4602 mov r2, r0 + 8004050: 460b mov r3, r1 + 8004052: 4620 mov r0, r4 + 8004054: 4629 mov r1, r5 + 8004056: f108 0430 add.w r4, r8, #48 @ 0x30 + 800405a: f7fc f91d bl 8000298 <__aeabi_dsub> + 800405e: f806 4b01 strb.w r4, [r6], #1 + 8004062: 9d03 ldr r5, [sp, #12] + 8004064: eba6 040a sub.w r4, r6, sl + 8004068: 42a5 cmp r5, r4 + 800406a: 4602 mov r2, r0 + 800406c: 460b mov r3, r1 + 800406e: d133 bne.n 80040d8 <_dtoa_r+0x6e0> + 8004070: f7fc f914 bl 800029c <__adddf3> + 8004074: e9dd 2300 ldrd r2, r3, [sp] + 8004078: 4604 mov r4, r0 + 800407a: 460d mov r5, r1 + 800407c: f7fc fd54 bl 8000b28 <__aeabi_dcmpgt> + 8004080: b9c0 cbnz r0, 80040b4 <_dtoa_r+0x6bc> + 8004082: e9dd 2300 ldrd r2, r3, [sp] + 8004086: 4620 mov r0, r4 + 8004088: 4629 mov r1, r5 + 800408a: f7fc fd25 bl 8000ad8 <__aeabi_dcmpeq> + 800408e: b110 cbz r0, 8004096 <_dtoa_r+0x69e> + 8004090: f018 0f01 tst.w r8, #1 + 8004094: d10e bne.n 80040b4 <_dtoa_r+0x6bc> + 8004096: 9902 ldr r1, [sp, #8] + 8004098: 4648 mov r0, r9 + 800409a: f000 fbbd bl 8004818 <_Bfree> + 800409e: 2300 movs r3, #0 + 80040a0: 7033 strb r3, [r6, #0] + 80040a2: 9b11 ldr r3, [sp, #68] @ 0x44 + 80040a4: 3701 adds r7, #1 + 80040a6: 601f str r7, [r3, #0] + 80040a8: 9b21 ldr r3, [sp, #132] @ 0x84 + 80040aa: 2b00 cmp r3, #0 + 80040ac: f000 824b beq.w 8004546 <_dtoa_r+0xb4e> + 80040b0: 601e str r6, [r3, #0] + 80040b2: e248 b.n 8004546 <_dtoa_r+0xb4e> + 80040b4: 46b8 mov r8, r7 + 80040b6: 4633 mov r3, r6 + 80040b8: 461e mov r6, r3 + 80040ba: f813 2d01 ldrb.w r2, [r3, #-1]! + 80040be: 2a39 cmp r2, #57 @ 0x39 + 80040c0: d106 bne.n 80040d0 <_dtoa_r+0x6d8> + 80040c2: 459a cmp sl, r3 + 80040c4: d1f8 bne.n 80040b8 <_dtoa_r+0x6c0> + 80040c6: 2230 movs r2, #48 @ 0x30 + 80040c8: f108 0801 add.w r8, r8, #1 + 80040cc: f88a 2000 strb.w r2, [sl] + 80040d0: 781a ldrb r2, [r3, #0] + 80040d2: 3201 adds r2, #1 + 80040d4: 701a strb r2, [r3, #0] + 80040d6: e7a0 b.n 800401a <_dtoa_r+0x622> + 80040d8: 4b6f ldr r3, [pc, #444] @ (8004298 <_dtoa_r+0x8a0>) + 80040da: 2200 movs r2, #0 + 80040dc: f7fc fa94 bl 8000608 <__aeabi_dmul> + 80040e0: 2200 movs r2, #0 + 80040e2: 2300 movs r3, #0 + 80040e4: 4604 mov r4, r0 + 80040e6: 460d mov r5, r1 + 80040e8: f7fc fcf6 bl 8000ad8 <__aeabi_dcmpeq> + 80040ec: 2800 cmp r0, #0 + 80040ee: d09f beq.n 8004030 <_dtoa_r+0x638> + 80040f0: e7d1 b.n 8004096 <_dtoa_r+0x69e> + 80040f2: 9a09 ldr r2, [sp, #36] @ 0x24 + 80040f4: 2a00 cmp r2, #0 + 80040f6: f000 80ea beq.w 80042ce <_dtoa_r+0x8d6> + 80040fa: 9a07 ldr r2, [sp, #28] + 80040fc: 2a01 cmp r2, #1 + 80040fe: f300 80cd bgt.w 800429c <_dtoa_r+0x8a4> + 8004102: 9a12 ldr r2, [sp, #72] @ 0x48 + 8004104: 2a00 cmp r2, #0 + 8004106: f000 80c1 beq.w 800428c <_dtoa_r+0x894> + 800410a: f203 4333 addw r3, r3, #1075 @ 0x433 + 800410e: 9c08 ldr r4, [sp, #32] + 8004110: 9e00 ldr r6, [sp, #0] + 8004112: 9a00 ldr r2, [sp, #0] + 8004114: 441a add r2, r3 + 8004116: 9200 str r2, [sp, #0] + 8004118: 9a06 ldr r2, [sp, #24] + 800411a: 2101 movs r1, #1 + 800411c: 441a add r2, r3 + 800411e: 4648 mov r0, r9 + 8004120: 9206 str r2, [sp, #24] + 8004122: f000 fc2d bl 8004980 <__i2b> + 8004126: 4605 mov r5, r0 + 8004128: b166 cbz r6, 8004144 <_dtoa_r+0x74c> + 800412a: 9b06 ldr r3, [sp, #24] + 800412c: 2b00 cmp r3, #0 + 800412e: dd09 ble.n 8004144 <_dtoa_r+0x74c> + 8004130: 42b3 cmp r3, r6 + 8004132: 9a00 ldr r2, [sp, #0] + 8004134: bfa8 it ge + 8004136: 4633 movge r3, r6 + 8004138: 1ad2 subs r2, r2, r3 + 800413a: 9200 str r2, [sp, #0] + 800413c: 9a06 ldr r2, [sp, #24] + 800413e: 1af6 subs r6, r6, r3 + 8004140: 1ad3 subs r3, r2, r3 + 8004142: 9306 str r3, [sp, #24] + 8004144: 9b08 ldr r3, [sp, #32] + 8004146: b30b cbz r3, 800418c <_dtoa_r+0x794> + 8004148: 9b09 ldr r3, [sp, #36] @ 0x24 + 800414a: 2b00 cmp r3, #0 + 800414c: f000 80c6 beq.w 80042dc <_dtoa_r+0x8e4> + 8004150: 2c00 cmp r4, #0 + 8004152: f000 80c0 beq.w 80042d6 <_dtoa_r+0x8de> + 8004156: 4629 mov r1, r5 + 8004158: 4622 mov r2, r4 + 800415a: 4648 mov r0, r9 + 800415c: f000 fcc8 bl 8004af0 <__pow5mult> + 8004160: 9a02 ldr r2, [sp, #8] + 8004162: 4601 mov r1, r0 + 8004164: 4605 mov r5, r0 + 8004166: 4648 mov r0, r9 + 8004168: f000 fc20 bl 80049ac <__multiply> + 800416c: 9902 ldr r1, [sp, #8] + 800416e: 4680 mov r8, r0 + 8004170: 4648 mov r0, r9 + 8004172: f000 fb51 bl 8004818 <_Bfree> + 8004176: 9b08 ldr r3, [sp, #32] + 8004178: 1b1b subs r3, r3, r4 + 800417a: 9308 str r3, [sp, #32] + 800417c: f000 80b1 beq.w 80042e2 <_dtoa_r+0x8ea> + 8004180: 9a08 ldr r2, [sp, #32] + 8004182: 4641 mov r1, r8 + 8004184: 4648 mov r0, r9 + 8004186: f000 fcb3 bl 8004af0 <__pow5mult> + 800418a: 9002 str r0, [sp, #8] + 800418c: 2101 movs r1, #1 + 800418e: 4648 mov r0, r9 + 8004190: f000 fbf6 bl 8004980 <__i2b> + 8004194: 9b0d ldr r3, [sp, #52] @ 0x34 + 8004196: 4604 mov r4, r0 + 8004198: 2b00 cmp r3, #0 + 800419a: f000 81d8 beq.w 800454e <_dtoa_r+0xb56> + 800419e: 461a mov r2, r3 + 80041a0: 4601 mov r1, r0 + 80041a2: 4648 mov r0, r9 + 80041a4: f000 fca4 bl 8004af0 <__pow5mult> + 80041a8: 9b07 ldr r3, [sp, #28] + 80041aa: 2b01 cmp r3, #1 + 80041ac: 4604 mov r4, r0 + 80041ae: f300 809f bgt.w 80042f0 <_dtoa_r+0x8f8> + 80041b2: 9b04 ldr r3, [sp, #16] + 80041b4: 2b00 cmp r3, #0 + 80041b6: f040 8097 bne.w 80042e8 <_dtoa_r+0x8f0> + 80041ba: 9b05 ldr r3, [sp, #20] + 80041bc: f3c3 0313 ubfx r3, r3, #0, #20 + 80041c0: 2b00 cmp r3, #0 + 80041c2: f040 8093 bne.w 80042ec <_dtoa_r+0x8f4> + 80041c6: 9b05 ldr r3, [sp, #20] + 80041c8: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 + 80041cc: 0d1b lsrs r3, r3, #20 + 80041ce: 051b lsls r3, r3, #20 + 80041d0: b133 cbz r3, 80041e0 <_dtoa_r+0x7e8> + 80041d2: 9b00 ldr r3, [sp, #0] + 80041d4: 3301 adds r3, #1 + 80041d6: 9300 str r3, [sp, #0] + 80041d8: 9b06 ldr r3, [sp, #24] + 80041da: 3301 adds r3, #1 + 80041dc: 9306 str r3, [sp, #24] + 80041de: 2301 movs r3, #1 + 80041e0: 9308 str r3, [sp, #32] + 80041e2: 9b0d ldr r3, [sp, #52] @ 0x34 + 80041e4: 2b00 cmp r3, #0 + 80041e6: f000 81b8 beq.w 800455a <_dtoa_r+0xb62> + 80041ea: 6923 ldr r3, [r4, #16] + 80041ec: eb04 0383 add.w r3, r4, r3, lsl #2 + 80041f0: 6918 ldr r0, [r3, #16] + 80041f2: f000 fb79 bl 80048e8 <__hi0bits> + 80041f6: f1c0 0020 rsb r0, r0, #32 + 80041fa: 9b06 ldr r3, [sp, #24] + 80041fc: 4418 add r0, r3 + 80041fe: f010 001f ands.w r0, r0, #31 + 8004202: f000 8082 beq.w 800430a <_dtoa_r+0x912> + 8004206: f1c0 0320 rsb r3, r0, #32 + 800420a: 2b04 cmp r3, #4 + 800420c: dd73 ble.n 80042f6 <_dtoa_r+0x8fe> + 800420e: 9b00 ldr r3, [sp, #0] + 8004210: f1c0 001c rsb r0, r0, #28 + 8004214: 4403 add r3, r0 + 8004216: 9300 str r3, [sp, #0] + 8004218: 9b06 ldr r3, [sp, #24] + 800421a: 4403 add r3, r0 + 800421c: 4406 add r6, r0 + 800421e: 9306 str r3, [sp, #24] + 8004220: 9b00 ldr r3, [sp, #0] + 8004222: 2b00 cmp r3, #0 + 8004224: dd05 ble.n 8004232 <_dtoa_r+0x83a> + 8004226: 9902 ldr r1, [sp, #8] + 8004228: 461a mov r2, r3 + 800422a: 4648 mov r0, r9 + 800422c: f000 fcba bl 8004ba4 <__lshift> + 8004230: 9002 str r0, [sp, #8] + 8004232: 9b06 ldr r3, [sp, #24] + 8004234: 2b00 cmp r3, #0 + 8004236: dd05 ble.n 8004244 <_dtoa_r+0x84c> + 8004238: 4621 mov r1, r4 + 800423a: 461a mov r2, r3 + 800423c: 4648 mov r0, r9 + 800423e: f000 fcb1 bl 8004ba4 <__lshift> + 8004242: 4604 mov r4, r0 + 8004244: 9b10 ldr r3, [sp, #64] @ 0x40 + 8004246: 2b00 cmp r3, #0 + 8004248: d061 beq.n 800430e <_dtoa_r+0x916> + 800424a: 9802 ldr r0, [sp, #8] + 800424c: 4621 mov r1, r4 + 800424e: f000 fd15 bl 8004c7c <__mcmp> + 8004252: 2800 cmp r0, #0 + 8004254: da5b bge.n 800430e <_dtoa_r+0x916> + 8004256: 2300 movs r3, #0 + 8004258: 9902 ldr r1, [sp, #8] + 800425a: 220a movs r2, #10 + 800425c: 4648 mov r0, r9 + 800425e: f000 fafd bl 800485c <__multadd> + 8004262: 9b09 ldr r3, [sp, #36] @ 0x24 + 8004264: 9002 str r0, [sp, #8] + 8004266: f107 38ff add.w r8, r7, #4294967295 + 800426a: 2b00 cmp r3, #0 + 800426c: f000 8177 beq.w 800455e <_dtoa_r+0xb66> + 8004270: 4629 mov r1, r5 + 8004272: 2300 movs r3, #0 + 8004274: 220a movs r2, #10 + 8004276: 4648 mov r0, r9 + 8004278: f000 faf0 bl 800485c <__multadd> + 800427c: f1bb 0f00 cmp.w fp, #0 + 8004280: 4605 mov r5, r0 + 8004282: dc6f bgt.n 8004364 <_dtoa_r+0x96c> + 8004284: 9b07 ldr r3, [sp, #28] + 8004286: 2b02 cmp r3, #2 + 8004288: dc49 bgt.n 800431e <_dtoa_r+0x926> + 800428a: e06b b.n 8004364 <_dtoa_r+0x96c> + 800428c: 9b14 ldr r3, [sp, #80] @ 0x50 + 800428e: f1c3 0336 rsb r3, r3, #54 @ 0x36 + 8004292: e73c b.n 800410e <_dtoa_r+0x716> + 8004294: 3fe00000 .word 0x3fe00000 + 8004298: 40240000 .word 0x40240000 + 800429c: 9b03 ldr r3, [sp, #12] + 800429e: 1e5c subs r4, r3, #1 + 80042a0: 9b08 ldr r3, [sp, #32] + 80042a2: 42a3 cmp r3, r4 + 80042a4: db09 blt.n 80042ba <_dtoa_r+0x8c2> + 80042a6: 1b1c subs r4, r3, r4 + 80042a8: 9b03 ldr r3, [sp, #12] + 80042aa: 2b00 cmp r3, #0 + 80042ac: f6bf af30 bge.w 8004110 <_dtoa_r+0x718> + 80042b0: 9b00 ldr r3, [sp, #0] + 80042b2: 9a03 ldr r2, [sp, #12] + 80042b4: 1a9e subs r6, r3, r2 + 80042b6: 2300 movs r3, #0 + 80042b8: e72b b.n 8004112 <_dtoa_r+0x71a> + 80042ba: 9b08 ldr r3, [sp, #32] + 80042bc: 9a0d ldr r2, [sp, #52] @ 0x34 + 80042be: 9408 str r4, [sp, #32] + 80042c0: 1ae3 subs r3, r4, r3 + 80042c2: 441a add r2, r3 + 80042c4: 9e00 ldr r6, [sp, #0] + 80042c6: 9b03 ldr r3, [sp, #12] + 80042c8: 920d str r2, [sp, #52] @ 0x34 + 80042ca: 2400 movs r4, #0 + 80042cc: e721 b.n 8004112 <_dtoa_r+0x71a> + 80042ce: 9c08 ldr r4, [sp, #32] + 80042d0: 9e00 ldr r6, [sp, #0] + 80042d2: 9d09 ldr r5, [sp, #36] @ 0x24 + 80042d4: e728 b.n 8004128 <_dtoa_r+0x730> + 80042d6: f8dd 8008 ldr.w r8, [sp, #8] + 80042da: e751 b.n 8004180 <_dtoa_r+0x788> + 80042dc: 9a08 ldr r2, [sp, #32] + 80042de: 9902 ldr r1, [sp, #8] + 80042e0: e750 b.n 8004184 <_dtoa_r+0x78c> + 80042e2: f8cd 8008 str.w r8, [sp, #8] + 80042e6: e751 b.n 800418c <_dtoa_r+0x794> + 80042e8: 2300 movs r3, #0 + 80042ea: e779 b.n 80041e0 <_dtoa_r+0x7e8> + 80042ec: 9b04 ldr r3, [sp, #16] + 80042ee: e777 b.n 80041e0 <_dtoa_r+0x7e8> + 80042f0: 2300 movs r3, #0 + 80042f2: 9308 str r3, [sp, #32] + 80042f4: e779 b.n 80041ea <_dtoa_r+0x7f2> + 80042f6: d093 beq.n 8004220 <_dtoa_r+0x828> + 80042f8: 9a00 ldr r2, [sp, #0] + 80042fa: 331c adds r3, #28 + 80042fc: 441a add r2, r3 + 80042fe: 9200 str r2, [sp, #0] + 8004300: 9a06 ldr r2, [sp, #24] + 8004302: 441a add r2, r3 + 8004304: 441e add r6, r3 + 8004306: 9206 str r2, [sp, #24] + 8004308: e78a b.n 8004220 <_dtoa_r+0x828> + 800430a: 4603 mov r3, r0 + 800430c: e7f4 b.n 80042f8 <_dtoa_r+0x900> + 800430e: 9b03 ldr r3, [sp, #12] + 8004310: 2b00 cmp r3, #0 + 8004312: 46b8 mov r8, r7 + 8004314: dc20 bgt.n 8004358 <_dtoa_r+0x960> + 8004316: 469b mov fp, r3 + 8004318: 9b07 ldr r3, [sp, #28] + 800431a: 2b02 cmp r3, #2 + 800431c: dd1e ble.n 800435c <_dtoa_r+0x964> + 800431e: f1bb 0f00 cmp.w fp, #0 + 8004322: f47f adb1 bne.w 8003e88 <_dtoa_r+0x490> + 8004326: 4621 mov r1, r4 + 8004328: 465b mov r3, fp + 800432a: 2205 movs r2, #5 + 800432c: 4648 mov r0, r9 + 800432e: f000 fa95 bl 800485c <__multadd> + 8004332: 4601 mov r1, r0 + 8004334: 4604 mov r4, r0 + 8004336: 9802 ldr r0, [sp, #8] + 8004338: f000 fca0 bl 8004c7c <__mcmp> + 800433c: 2800 cmp r0, #0 + 800433e: f77f ada3 ble.w 8003e88 <_dtoa_r+0x490> + 8004342: 4656 mov r6, sl + 8004344: 2331 movs r3, #49 @ 0x31 + 8004346: f806 3b01 strb.w r3, [r6], #1 + 800434a: f108 0801 add.w r8, r8, #1 + 800434e: e59f b.n 8003e90 <_dtoa_r+0x498> + 8004350: 9c03 ldr r4, [sp, #12] + 8004352: 46b8 mov r8, r7 + 8004354: 4625 mov r5, r4 + 8004356: e7f4 b.n 8004342 <_dtoa_r+0x94a> + 8004358: f8dd b00c ldr.w fp, [sp, #12] + 800435c: 9b09 ldr r3, [sp, #36] @ 0x24 + 800435e: 2b00 cmp r3, #0 + 8004360: f000 8101 beq.w 8004566 <_dtoa_r+0xb6e> + 8004364: 2e00 cmp r6, #0 + 8004366: dd05 ble.n 8004374 <_dtoa_r+0x97c> + 8004368: 4629 mov r1, r5 + 800436a: 4632 mov r2, r6 + 800436c: 4648 mov r0, r9 + 800436e: f000 fc19 bl 8004ba4 <__lshift> + 8004372: 4605 mov r5, r0 + 8004374: 9b08 ldr r3, [sp, #32] + 8004376: 2b00 cmp r3, #0 + 8004378: d05c beq.n 8004434 <_dtoa_r+0xa3c> + 800437a: 6869 ldr r1, [r5, #4] + 800437c: 4648 mov r0, r9 + 800437e: f000 fa0b bl 8004798 <_Balloc> + 8004382: 4606 mov r6, r0 + 8004384: b928 cbnz r0, 8004392 <_dtoa_r+0x99a> + 8004386: 4b82 ldr r3, [pc, #520] @ (8004590 <_dtoa_r+0xb98>) + 8004388: 4602 mov r2, r0 + 800438a: f240 21ef movw r1, #751 @ 0x2ef + 800438e: f7ff bb4a b.w 8003a26 <_dtoa_r+0x2e> + 8004392: 692a ldr r2, [r5, #16] + 8004394: 3202 adds r2, #2 + 8004396: 0092 lsls r2, r2, #2 + 8004398: f105 010c add.w r1, r5, #12 + 800439c: 300c adds r0, #12 + 800439e: f000 fe31 bl 8005004 + 80043a2: 2201 movs r2, #1 + 80043a4: 4631 mov r1, r6 + 80043a6: 4648 mov r0, r9 + 80043a8: f000 fbfc bl 8004ba4 <__lshift> + 80043ac: f10a 0301 add.w r3, sl, #1 + 80043b0: 9300 str r3, [sp, #0] + 80043b2: eb0a 030b add.w r3, sl, fp + 80043b6: 9308 str r3, [sp, #32] + 80043b8: 9b04 ldr r3, [sp, #16] + 80043ba: f003 0301 and.w r3, r3, #1 + 80043be: 462f mov r7, r5 + 80043c0: 9306 str r3, [sp, #24] + 80043c2: 4605 mov r5, r0 + 80043c4: 9b00 ldr r3, [sp, #0] + 80043c6: 9802 ldr r0, [sp, #8] + 80043c8: 4621 mov r1, r4 + 80043ca: f103 3bff add.w fp, r3, #4294967295 + 80043ce: f7ff fa88 bl 80038e2 + 80043d2: 4603 mov r3, r0 + 80043d4: 3330 adds r3, #48 @ 0x30 + 80043d6: 9003 str r0, [sp, #12] + 80043d8: 4639 mov r1, r7 + 80043da: 9802 ldr r0, [sp, #8] + 80043dc: 9309 str r3, [sp, #36] @ 0x24 + 80043de: f000 fc4d bl 8004c7c <__mcmp> + 80043e2: 462a mov r2, r5 + 80043e4: 9004 str r0, [sp, #16] + 80043e6: 4621 mov r1, r4 + 80043e8: 4648 mov r0, r9 + 80043ea: f000 fc63 bl 8004cb4 <__mdiff> + 80043ee: 68c2 ldr r2, [r0, #12] + 80043f0: 9b09 ldr r3, [sp, #36] @ 0x24 + 80043f2: 4606 mov r6, r0 + 80043f4: bb02 cbnz r2, 8004438 <_dtoa_r+0xa40> + 80043f6: 4601 mov r1, r0 + 80043f8: 9802 ldr r0, [sp, #8] + 80043fa: f000 fc3f bl 8004c7c <__mcmp> + 80043fe: 9b09 ldr r3, [sp, #36] @ 0x24 + 8004400: 4602 mov r2, r0 + 8004402: 4631 mov r1, r6 + 8004404: 4648 mov r0, r9 + 8004406: 920c str r2, [sp, #48] @ 0x30 + 8004408: 9309 str r3, [sp, #36] @ 0x24 + 800440a: f000 fa05 bl 8004818 <_Bfree> + 800440e: 9b07 ldr r3, [sp, #28] + 8004410: 9a0c ldr r2, [sp, #48] @ 0x30 + 8004412: 9e00 ldr r6, [sp, #0] + 8004414: ea42 0103 orr.w r1, r2, r3 + 8004418: 9b06 ldr r3, [sp, #24] + 800441a: 4319 orrs r1, r3 + 800441c: 9b09 ldr r3, [sp, #36] @ 0x24 + 800441e: d10d bne.n 800443c <_dtoa_r+0xa44> + 8004420: 2b39 cmp r3, #57 @ 0x39 + 8004422: d027 beq.n 8004474 <_dtoa_r+0xa7c> + 8004424: 9a04 ldr r2, [sp, #16] + 8004426: 2a00 cmp r2, #0 + 8004428: dd01 ble.n 800442e <_dtoa_r+0xa36> + 800442a: 9b03 ldr r3, [sp, #12] + 800442c: 3331 adds r3, #49 @ 0x31 + 800442e: f88b 3000 strb.w r3, [fp] + 8004432: e52e b.n 8003e92 <_dtoa_r+0x49a> + 8004434: 4628 mov r0, r5 + 8004436: e7b9 b.n 80043ac <_dtoa_r+0x9b4> + 8004438: 2201 movs r2, #1 + 800443a: e7e2 b.n 8004402 <_dtoa_r+0xa0a> + 800443c: 9904 ldr r1, [sp, #16] + 800443e: 2900 cmp r1, #0 + 8004440: db04 blt.n 800444c <_dtoa_r+0xa54> + 8004442: 9807 ldr r0, [sp, #28] + 8004444: 4301 orrs r1, r0 + 8004446: 9806 ldr r0, [sp, #24] + 8004448: 4301 orrs r1, r0 + 800444a: d120 bne.n 800448e <_dtoa_r+0xa96> + 800444c: 2a00 cmp r2, #0 + 800444e: ddee ble.n 800442e <_dtoa_r+0xa36> + 8004450: 9902 ldr r1, [sp, #8] + 8004452: 9300 str r3, [sp, #0] + 8004454: 2201 movs r2, #1 + 8004456: 4648 mov r0, r9 + 8004458: f000 fba4 bl 8004ba4 <__lshift> + 800445c: 4621 mov r1, r4 + 800445e: 9002 str r0, [sp, #8] + 8004460: f000 fc0c bl 8004c7c <__mcmp> + 8004464: 2800 cmp r0, #0 + 8004466: 9b00 ldr r3, [sp, #0] + 8004468: dc02 bgt.n 8004470 <_dtoa_r+0xa78> + 800446a: d1e0 bne.n 800442e <_dtoa_r+0xa36> + 800446c: 07da lsls r2, r3, #31 + 800446e: d5de bpl.n 800442e <_dtoa_r+0xa36> + 8004470: 2b39 cmp r3, #57 @ 0x39 + 8004472: d1da bne.n 800442a <_dtoa_r+0xa32> + 8004474: 2339 movs r3, #57 @ 0x39 + 8004476: f88b 3000 strb.w r3, [fp] + 800447a: 4633 mov r3, r6 + 800447c: 461e mov r6, r3 + 800447e: 3b01 subs r3, #1 + 8004480: f816 2c01 ldrb.w r2, [r6, #-1] + 8004484: 2a39 cmp r2, #57 @ 0x39 + 8004486: d04e beq.n 8004526 <_dtoa_r+0xb2e> + 8004488: 3201 adds r2, #1 + 800448a: 701a strb r2, [r3, #0] + 800448c: e501 b.n 8003e92 <_dtoa_r+0x49a> + 800448e: 2a00 cmp r2, #0 + 8004490: dd03 ble.n 800449a <_dtoa_r+0xaa2> + 8004492: 2b39 cmp r3, #57 @ 0x39 + 8004494: d0ee beq.n 8004474 <_dtoa_r+0xa7c> + 8004496: 3301 adds r3, #1 + 8004498: e7c9 b.n 800442e <_dtoa_r+0xa36> + 800449a: 9a00 ldr r2, [sp, #0] + 800449c: 9908 ldr r1, [sp, #32] + 800449e: f802 3c01 strb.w r3, [r2, #-1] + 80044a2: 428a cmp r2, r1 + 80044a4: d028 beq.n 80044f8 <_dtoa_r+0xb00> + 80044a6: 9902 ldr r1, [sp, #8] + 80044a8: 2300 movs r3, #0 + 80044aa: 220a movs r2, #10 + 80044ac: 4648 mov r0, r9 + 80044ae: f000 f9d5 bl 800485c <__multadd> + 80044b2: 42af cmp r7, r5 + 80044b4: 9002 str r0, [sp, #8] + 80044b6: f04f 0300 mov.w r3, #0 + 80044ba: f04f 020a mov.w r2, #10 + 80044be: 4639 mov r1, r7 + 80044c0: 4648 mov r0, r9 + 80044c2: d107 bne.n 80044d4 <_dtoa_r+0xadc> + 80044c4: f000 f9ca bl 800485c <__multadd> + 80044c8: 4607 mov r7, r0 + 80044ca: 4605 mov r5, r0 + 80044cc: 9b00 ldr r3, [sp, #0] + 80044ce: 3301 adds r3, #1 + 80044d0: 9300 str r3, [sp, #0] + 80044d2: e777 b.n 80043c4 <_dtoa_r+0x9cc> + 80044d4: f000 f9c2 bl 800485c <__multadd> + 80044d8: 4629 mov r1, r5 + 80044da: 4607 mov r7, r0 + 80044dc: 2300 movs r3, #0 + 80044de: 220a movs r2, #10 + 80044e0: 4648 mov r0, r9 + 80044e2: f000 f9bb bl 800485c <__multadd> + 80044e6: 4605 mov r5, r0 + 80044e8: e7f0 b.n 80044cc <_dtoa_r+0xad4> + 80044ea: f1bb 0f00 cmp.w fp, #0 + 80044ee: bfcc ite gt + 80044f0: 465e movgt r6, fp + 80044f2: 2601 movle r6, #1 + 80044f4: 4456 add r6, sl + 80044f6: 2700 movs r7, #0 + 80044f8: 9902 ldr r1, [sp, #8] + 80044fa: 9300 str r3, [sp, #0] + 80044fc: 2201 movs r2, #1 + 80044fe: 4648 mov r0, r9 + 8004500: f000 fb50 bl 8004ba4 <__lshift> + 8004504: 4621 mov r1, r4 + 8004506: 9002 str r0, [sp, #8] + 8004508: f000 fbb8 bl 8004c7c <__mcmp> + 800450c: 2800 cmp r0, #0 + 800450e: dcb4 bgt.n 800447a <_dtoa_r+0xa82> + 8004510: d102 bne.n 8004518 <_dtoa_r+0xb20> + 8004512: 9b00 ldr r3, [sp, #0] + 8004514: 07db lsls r3, r3, #31 + 8004516: d4b0 bmi.n 800447a <_dtoa_r+0xa82> + 8004518: 4633 mov r3, r6 + 800451a: 461e mov r6, r3 + 800451c: f813 2d01 ldrb.w r2, [r3, #-1]! + 8004520: 2a30 cmp r2, #48 @ 0x30 + 8004522: d0fa beq.n 800451a <_dtoa_r+0xb22> + 8004524: e4b5 b.n 8003e92 <_dtoa_r+0x49a> + 8004526: 459a cmp sl, r3 + 8004528: d1a8 bne.n 800447c <_dtoa_r+0xa84> + 800452a: 2331 movs r3, #49 @ 0x31 + 800452c: f108 0801 add.w r8, r8, #1 + 8004530: f88a 3000 strb.w r3, [sl] + 8004534: e4ad b.n 8003e92 <_dtoa_r+0x49a> + 8004536: 9b21 ldr r3, [sp, #132] @ 0x84 + 8004538: f8df a058 ldr.w sl, [pc, #88] @ 8004594 <_dtoa_r+0xb9c> + 800453c: b11b cbz r3, 8004546 <_dtoa_r+0xb4e> + 800453e: f10a 0308 add.w r3, sl, #8 + 8004542: 9a21 ldr r2, [sp, #132] @ 0x84 + 8004544: 6013 str r3, [r2, #0] + 8004546: 4650 mov r0, sl + 8004548: b017 add sp, #92 @ 0x5c + 800454a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 800454e: 9b07 ldr r3, [sp, #28] + 8004550: 2b01 cmp r3, #1 + 8004552: f77f ae2e ble.w 80041b2 <_dtoa_r+0x7ba> + 8004556: 9b0d ldr r3, [sp, #52] @ 0x34 + 8004558: 9308 str r3, [sp, #32] + 800455a: 2001 movs r0, #1 + 800455c: e64d b.n 80041fa <_dtoa_r+0x802> + 800455e: f1bb 0f00 cmp.w fp, #0 + 8004562: f77f aed9 ble.w 8004318 <_dtoa_r+0x920> + 8004566: 4656 mov r6, sl + 8004568: 9802 ldr r0, [sp, #8] + 800456a: 4621 mov r1, r4 + 800456c: f7ff f9b9 bl 80038e2 + 8004570: f100 0330 add.w r3, r0, #48 @ 0x30 + 8004574: f806 3b01 strb.w r3, [r6], #1 + 8004578: eba6 020a sub.w r2, r6, sl + 800457c: 4593 cmp fp, r2 + 800457e: ddb4 ble.n 80044ea <_dtoa_r+0xaf2> + 8004580: 9902 ldr r1, [sp, #8] + 8004582: 2300 movs r3, #0 + 8004584: 220a movs r2, #10 + 8004586: 4648 mov r0, r9 + 8004588: f000 f968 bl 800485c <__multadd> + 800458c: 9002 str r0, [sp, #8] + 800458e: e7eb b.n 8004568 <_dtoa_r+0xb70> + 8004590: 08005738 .word 0x08005738 + 8004594: 080056bc .word 0x080056bc -08009504 <__d2b>: - 8009504: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - 8009508: 460f mov r7, r1 - 800950a: 2101 movs r1, #1 - 800950c: ec59 8b10 vmov r8, r9, d0 - 8009510: 4616 mov r6, r2 - 8009512: f7ff fcd5 bl 8008ec0 <_Balloc> - 8009516: 4604 mov r4, r0 - 8009518: b930 cbnz r0, 8009528 <__d2b+0x24> - 800951a: 4602 mov r2, r0 - 800951c: 4b23 ldr r3, [pc, #140] @ (80095ac <__d2b+0xa8>) - 800951e: 4824 ldr r0, [pc, #144] @ (80095b0 <__d2b+0xac>) - 8009520: f240 310f movw r1, #783 @ 0x30f - 8009524: f000 fc58 bl 8009dd8 <__assert_func> - 8009528: f3c9 550a ubfx r5, r9, #20, #11 - 800952c: f3c9 0313 ubfx r3, r9, #0, #20 - 8009530: b10d cbz r5, 8009536 <__d2b+0x32> - 8009532: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 - 8009536: 9301 str r3, [sp, #4] - 8009538: f1b8 0300 subs.w r3, r8, #0 - 800953c: d023 beq.n 8009586 <__d2b+0x82> - 800953e: 4668 mov r0, sp - 8009540: 9300 str r3, [sp, #0] - 8009542: f7ff fd84 bl 800904e <__lo0bits> - 8009546: e9dd 1200 ldrd r1, r2, [sp] - 800954a: b1d0 cbz r0, 8009582 <__d2b+0x7e> - 800954c: f1c0 0320 rsb r3, r0, #32 - 8009550: fa02 f303 lsl.w r3, r2, r3 - 8009554: 430b orrs r3, r1 - 8009556: 40c2 lsrs r2, r0 - 8009558: 6163 str r3, [r4, #20] - 800955a: 9201 str r2, [sp, #4] - 800955c: 9b01 ldr r3, [sp, #4] - 800955e: 61a3 str r3, [r4, #24] - 8009560: 2b00 cmp r3, #0 - 8009562: bf0c ite eq - 8009564: 2201 moveq r2, #1 - 8009566: 2202 movne r2, #2 - 8009568: 6122 str r2, [r4, #16] - 800956a: b1a5 cbz r5, 8009596 <__d2b+0x92> - 800956c: f2a5 4533 subw r5, r5, #1075 @ 0x433 - 8009570: 4405 add r5, r0 - 8009572: 603d str r5, [r7, #0] - 8009574: f1c0 0035 rsb r0, r0, #53 @ 0x35 - 8009578: 6030 str r0, [r6, #0] - 800957a: 4620 mov r0, r4 - 800957c: b003 add sp, #12 - 800957e: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 8009582: 6161 str r1, [r4, #20] - 8009584: e7ea b.n 800955c <__d2b+0x58> - 8009586: a801 add r0, sp, #4 - 8009588: f7ff fd61 bl 800904e <__lo0bits> - 800958c: 9b01 ldr r3, [sp, #4] - 800958e: 6163 str r3, [r4, #20] - 8009590: 3020 adds r0, #32 - 8009592: 2201 movs r2, #1 - 8009594: e7e8 b.n 8009568 <__d2b+0x64> - 8009596: eb04 0382 add.w r3, r4, r2, lsl #2 - 800959a: f2a0 4032 subw r0, r0, #1074 @ 0x432 - 800959e: 6038 str r0, [r7, #0] - 80095a0: 6918 ldr r0, [r3, #16] - 80095a2: f7ff fd35 bl 8009010 <__hi0bits> - 80095a6: ebc0 1042 rsb r0, r0, r2, lsl #5 - 80095aa: e7e5 b.n 8009578 <__d2b+0x74> - 80095ac: 0800ba34 .word 0x0800ba34 - 80095b0: 0800ba45 .word 0x0800ba45 +08004598 <_free_r>: + 8004598: b538 push {r3, r4, r5, lr} + 800459a: 4605 mov r5, r0 + 800459c: 2900 cmp r1, #0 + 800459e: d041 beq.n 8004624 <_free_r+0x8c> + 80045a0: f851 3c04 ldr.w r3, [r1, #-4] + 80045a4: 1f0c subs r4, r1, #4 + 80045a6: 2b00 cmp r3, #0 + 80045a8: bfb8 it lt + 80045aa: 18e4 addlt r4, r4, r3 + 80045ac: f000 f8e8 bl 8004780 <__malloc_lock> + 80045b0: 4a1d ldr r2, [pc, #116] @ (8004628 <_free_r+0x90>) + 80045b2: 6813 ldr r3, [r2, #0] + 80045b4: b933 cbnz r3, 80045c4 <_free_r+0x2c> + 80045b6: 6063 str r3, [r4, #4] + 80045b8: 6014 str r4, [r2, #0] + 80045ba: 4628 mov r0, r5 + 80045bc: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 80045c0: f000 b8e4 b.w 800478c <__malloc_unlock> + 80045c4: 42a3 cmp r3, r4 + 80045c6: d908 bls.n 80045da <_free_r+0x42> + 80045c8: 6820 ldr r0, [r4, #0] + 80045ca: 1821 adds r1, r4, r0 + 80045cc: 428b cmp r3, r1 + 80045ce: bf01 itttt eq + 80045d0: 6819 ldreq r1, [r3, #0] + 80045d2: 685b ldreq r3, [r3, #4] + 80045d4: 1809 addeq r1, r1, r0 + 80045d6: 6021 streq r1, [r4, #0] + 80045d8: e7ed b.n 80045b6 <_free_r+0x1e> + 80045da: 461a mov r2, r3 + 80045dc: 685b ldr r3, [r3, #4] + 80045de: b10b cbz r3, 80045e4 <_free_r+0x4c> + 80045e0: 42a3 cmp r3, r4 + 80045e2: d9fa bls.n 80045da <_free_r+0x42> + 80045e4: 6811 ldr r1, [r2, #0] + 80045e6: 1850 adds r0, r2, r1 + 80045e8: 42a0 cmp r0, r4 + 80045ea: d10b bne.n 8004604 <_free_r+0x6c> + 80045ec: 6820 ldr r0, [r4, #0] + 80045ee: 4401 add r1, r0 + 80045f0: 1850 adds r0, r2, r1 + 80045f2: 4283 cmp r3, r0 + 80045f4: 6011 str r1, [r2, #0] + 80045f6: d1e0 bne.n 80045ba <_free_r+0x22> + 80045f8: 6818 ldr r0, [r3, #0] + 80045fa: 685b ldr r3, [r3, #4] + 80045fc: 6053 str r3, [r2, #4] + 80045fe: 4408 add r0, r1 + 8004600: 6010 str r0, [r2, #0] + 8004602: e7da b.n 80045ba <_free_r+0x22> + 8004604: d902 bls.n 800460c <_free_r+0x74> + 8004606: 230c movs r3, #12 + 8004608: 602b str r3, [r5, #0] + 800460a: e7d6 b.n 80045ba <_free_r+0x22> + 800460c: 6820 ldr r0, [r4, #0] + 800460e: 1821 adds r1, r4, r0 + 8004610: 428b cmp r3, r1 + 8004612: bf04 itt eq + 8004614: 6819 ldreq r1, [r3, #0] + 8004616: 685b ldreq r3, [r3, #4] + 8004618: 6063 str r3, [r4, #4] + 800461a: bf04 itt eq + 800461c: 1809 addeq r1, r1, r0 + 800461e: 6021 streq r1, [r4, #0] + 8004620: 6054 str r4, [r2, #4] + 8004622: e7ca b.n 80045ba <_free_r+0x22> + 8004624: bd38 pop {r3, r4, r5, pc} + 8004626: bf00 nop + 8004628: 200007a8 .word 0x200007a8 -080095b4 <__ssputs_r>: - 80095b4: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80095b8: 688e ldr r6, [r1, #8] - 80095ba: 461f mov r7, r3 - 80095bc: 42be cmp r6, r7 - 80095be: 680b ldr r3, [r1, #0] - 80095c0: 4682 mov sl, r0 - 80095c2: 460c mov r4, r1 - 80095c4: 4690 mov r8, r2 - 80095c6: d82d bhi.n 8009624 <__ssputs_r+0x70> - 80095c8: f9b1 200c ldrsh.w r2, [r1, #12] - 80095cc: f412 6f90 tst.w r2, #1152 @ 0x480 - 80095d0: d026 beq.n 8009620 <__ssputs_r+0x6c> - 80095d2: 6965 ldr r5, [r4, #20] - 80095d4: 6909 ldr r1, [r1, #16] - 80095d6: eb05 0545 add.w r5, r5, r5, lsl #1 - 80095da: eba3 0901 sub.w r9, r3, r1 - 80095de: eb05 75d5 add.w r5, r5, r5, lsr #31 - 80095e2: 1c7b adds r3, r7, #1 - 80095e4: 444b add r3, r9 - 80095e6: 106d asrs r5, r5, #1 - 80095e8: 429d cmp r5, r3 - 80095ea: bf38 it cc - 80095ec: 461d movcc r5, r3 - 80095ee: 0553 lsls r3, r2, #21 - 80095f0: d527 bpl.n 8009642 <__ssputs_r+0x8e> - 80095f2: 4629 mov r1, r5 - 80095f4: f7ff fbd8 bl 8008da8 <_malloc_r> - 80095f8: 4606 mov r6, r0 - 80095fa: b360 cbz r0, 8009656 <__ssputs_r+0xa2> - 80095fc: 6921 ldr r1, [r4, #16] - 80095fe: 464a mov r2, r9 - 8009600: f000 fbdc bl 8009dbc - 8009604: 89a3 ldrh r3, [r4, #12] - 8009606: f423 6390 bic.w r3, r3, #1152 @ 0x480 - 800960a: f043 0380 orr.w r3, r3, #128 @ 0x80 - 800960e: 81a3 strh r3, [r4, #12] - 8009610: 6126 str r6, [r4, #16] - 8009612: 6165 str r5, [r4, #20] - 8009614: 444e add r6, r9 - 8009616: eba5 0509 sub.w r5, r5, r9 - 800961a: 6026 str r6, [r4, #0] - 800961c: 60a5 str r5, [r4, #8] - 800961e: 463e mov r6, r7 - 8009620: 42be cmp r6, r7 - 8009622: d900 bls.n 8009626 <__ssputs_r+0x72> - 8009624: 463e mov r6, r7 - 8009626: 6820 ldr r0, [r4, #0] - 8009628: 4632 mov r2, r6 - 800962a: 4641 mov r1, r8 - 800962c: f000 fb9c bl 8009d68 - 8009630: 68a3 ldr r3, [r4, #8] - 8009632: 1b9b subs r3, r3, r6 - 8009634: 60a3 str r3, [r4, #8] - 8009636: 6823 ldr r3, [r4, #0] - 8009638: 4433 add r3, r6 - 800963a: 6023 str r3, [r4, #0] - 800963c: 2000 movs r0, #0 - 800963e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8009642: 462a mov r2, r5 - 8009644: f000 fc0c bl 8009e60 <_realloc_r> - 8009648: 4606 mov r6, r0 - 800964a: 2800 cmp r0, #0 - 800964c: d1e0 bne.n 8009610 <__ssputs_r+0x5c> - 800964e: 6921 ldr r1, [r4, #16] - 8009650: 4650 mov r0, sl - 8009652: f7ff fb35 bl 8008cc0 <_free_r> - 8009656: 230c movs r3, #12 - 8009658: f8ca 3000 str.w r3, [sl] - 800965c: 89a3 ldrh r3, [r4, #12] - 800965e: f043 0340 orr.w r3, r3, #64 @ 0x40 - 8009662: 81a3 strh r3, [r4, #12] - 8009664: f04f 30ff mov.w r0, #4294967295 - 8009668: e7e9 b.n 800963e <__ssputs_r+0x8a> +0800462c : + 800462c: 4b02 ldr r3, [pc, #8] @ (8004638 ) + 800462e: 4601 mov r1, r0 + 8004630: 6818 ldr r0, [r3, #0] + 8004632: f000 b825 b.w 8004680 <_malloc_r> + 8004636: bf00 nop + 8004638: 20000018 .word 0x20000018 + +0800463c : + 800463c: b570 push {r4, r5, r6, lr} + 800463e: 4e0f ldr r6, [pc, #60] @ (800467c ) + 8004640: 460c mov r4, r1 + 8004642: 6831 ldr r1, [r6, #0] + 8004644: 4605 mov r5, r0 + 8004646: b911 cbnz r1, 800464e + 8004648: f000 fccc bl 8004fe4 <_sbrk_r> + 800464c: 6030 str r0, [r6, #0] + 800464e: 4621 mov r1, r4 + 8004650: 4628 mov r0, r5 + 8004652: f000 fcc7 bl 8004fe4 <_sbrk_r> + 8004656: 1c43 adds r3, r0, #1 + 8004658: d103 bne.n 8004662 + 800465a: f04f 34ff mov.w r4, #4294967295 + 800465e: 4620 mov r0, r4 + 8004660: bd70 pop {r4, r5, r6, pc} + 8004662: 1cc4 adds r4, r0, #3 + 8004664: f024 0403 bic.w r4, r4, #3 + 8004668: 42a0 cmp r0, r4 + 800466a: d0f8 beq.n 800465e + 800466c: 1a21 subs r1, r4, r0 + 800466e: 4628 mov r0, r5 + 8004670: f000 fcb8 bl 8004fe4 <_sbrk_r> + 8004674: 3001 adds r0, #1 + 8004676: d1f2 bne.n 800465e + 8004678: e7ef b.n 800465a + 800467a: bf00 nop + 800467c: 200007a4 .word 0x200007a4 + +08004680 <_malloc_r>: + 8004680: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + 8004684: 1ccd adds r5, r1, #3 + 8004686: f025 0503 bic.w r5, r5, #3 + 800468a: 3508 adds r5, #8 + 800468c: 2d0c cmp r5, #12 + 800468e: bf38 it cc + 8004690: 250c movcc r5, #12 + 8004692: 2d00 cmp r5, #0 + 8004694: 4606 mov r6, r0 + 8004696: db01 blt.n 800469c <_malloc_r+0x1c> + 8004698: 42a9 cmp r1, r5 + 800469a: d904 bls.n 80046a6 <_malloc_r+0x26> + 800469c: 230c movs r3, #12 + 800469e: 6033 str r3, [r6, #0] + 80046a0: 2000 movs r0, #0 + 80046a2: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} + 80046a6: f8df 80d4 ldr.w r8, [pc, #212] @ 800477c <_malloc_r+0xfc> + 80046aa: f000 f869 bl 8004780 <__malloc_lock> + 80046ae: f8d8 3000 ldr.w r3, [r8] + 80046b2: 461c mov r4, r3 + 80046b4: bb44 cbnz r4, 8004708 <_malloc_r+0x88> + 80046b6: 4629 mov r1, r5 + 80046b8: 4630 mov r0, r6 + 80046ba: f7ff ffbf bl 800463c + 80046be: 1c43 adds r3, r0, #1 + 80046c0: 4604 mov r4, r0 + 80046c2: d158 bne.n 8004776 <_malloc_r+0xf6> + 80046c4: f8d8 4000 ldr.w r4, [r8] + 80046c8: 4627 mov r7, r4 + 80046ca: 2f00 cmp r7, #0 + 80046cc: d143 bne.n 8004756 <_malloc_r+0xd6> + 80046ce: 2c00 cmp r4, #0 + 80046d0: d04b beq.n 800476a <_malloc_r+0xea> + 80046d2: 6823 ldr r3, [r4, #0] + 80046d4: 4639 mov r1, r7 + 80046d6: 4630 mov r0, r6 + 80046d8: eb04 0903 add.w r9, r4, r3 + 80046dc: f000 fc82 bl 8004fe4 <_sbrk_r> + 80046e0: 4581 cmp r9, r0 + 80046e2: d142 bne.n 800476a <_malloc_r+0xea> + 80046e4: 6821 ldr r1, [r4, #0] + 80046e6: 1a6d subs r5, r5, r1 + 80046e8: 4629 mov r1, r5 + 80046ea: 4630 mov r0, r6 + 80046ec: f7ff ffa6 bl 800463c + 80046f0: 3001 adds r0, #1 + 80046f2: d03a beq.n 800476a <_malloc_r+0xea> + 80046f4: 6823 ldr r3, [r4, #0] + 80046f6: 442b add r3, r5 + 80046f8: 6023 str r3, [r4, #0] + 80046fa: f8d8 3000 ldr.w r3, [r8] + 80046fe: 685a ldr r2, [r3, #4] + 8004700: bb62 cbnz r2, 800475c <_malloc_r+0xdc> + 8004702: f8c8 7000 str.w r7, [r8] + 8004706: e00f b.n 8004728 <_malloc_r+0xa8> + 8004708: 6822 ldr r2, [r4, #0] + 800470a: 1b52 subs r2, r2, r5 + 800470c: d420 bmi.n 8004750 <_malloc_r+0xd0> + 800470e: 2a0b cmp r2, #11 + 8004710: d917 bls.n 8004742 <_malloc_r+0xc2> + 8004712: 1961 adds r1, r4, r5 + 8004714: 42a3 cmp r3, r4 + 8004716: 6025 str r5, [r4, #0] + 8004718: bf18 it ne + 800471a: 6059 strne r1, [r3, #4] + 800471c: 6863 ldr r3, [r4, #4] + 800471e: bf08 it eq + 8004720: f8c8 1000 streq.w r1, [r8] + 8004724: 5162 str r2, [r4, r5] + 8004726: 604b str r3, [r1, #4] + 8004728: 4630 mov r0, r6 + 800472a: f000 f82f bl 800478c <__malloc_unlock> + 800472e: f104 000b add.w r0, r4, #11 + 8004732: 1d23 adds r3, r4, #4 + 8004734: f020 0007 bic.w r0, r0, #7 + 8004738: 1ac2 subs r2, r0, r3 + 800473a: bf1c itt ne + 800473c: 1a1b subne r3, r3, r0 + 800473e: 50a3 strne r3, [r4, r2] + 8004740: e7af b.n 80046a2 <_malloc_r+0x22> + 8004742: 6862 ldr r2, [r4, #4] + 8004744: 42a3 cmp r3, r4 + 8004746: bf0c ite eq + 8004748: f8c8 2000 streq.w r2, [r8] + 800474c: 605a strne r2, [r3, #4] + 800474e: e7eb b.n 8004728 <_malloc_r+0xa8> + 8004750: 4623 mov r3, r4 + 8004752: 6864 ldr r4, [r4, #4] + 8004754: e7ae b.n 80046b4 <_malloc_r+0x34> + 8004756: 463c mov r4, r7 + 8004758: 687f ldr r7, [r7, #4] + 800475a: e7b6 b.n 80046ca <_malloc_r+0x4a> + 800475c: 461a mov r2, r3 + 800475e: 685b ldr r3, [r3, #4] + 8004760: 42a3 cmp r3, r4 + 8004762: d1fb bne.n 800475c <_malloc_r+0xdc> + 8004764: 2300 movs r3, #0 + 8004766: 6053 str r3, [r2, #4] + 8004768: e7de b.n 8004728 <_malloc_r+0xa8> + 800476a: 230c movs r3, #12 + 800476c: 6033 str r3, [r6, #0] + 800476e: 4630 mov r0, r6 + 8004770: f000 f80c bl 800478c <__malloc_unlock> + 8004774: e794 b.n 80046a0 <_malloc_r+0x20> + 8004776: 6005 str r5, [r0, #0] + 8004778: e7d6 b.n 8004728 <_malloc_r+0xa8> + 800477a: bf00 nop + 800477c: 200007a8 .word 0x200007a8 + +08004780 <__malloc_lock>: + 8004780: 4801 ldr r0, [pc, #4] @ (8004788 <__malloc_lock+0x8>) + 8004782: f7ff b8ac b.w 80038de <__retarget_lock_acquire_recursive> + 8004786: bf00 nop + 8004788: 200007a0 .word 0x200007a0 + +0800478c <__malloc_unlock>: + 800478c: 4801 ldr r0, [pc, #4] @ (8004794 <__malloc_unlock+0x8>) + 800478e: f7ff b8a7 b.w 80038e0 <__retarget_lock_release_recursive> + 8004792: bf00 nop + 8004794: 200007a0 .word 0x200007a0 + +08004798 <_Balloc>: + 8004798: b570 push {r4, r5, r6, lr} + 800479a: 69c6 ldr r6, [r0, #28] + 800479c: 4604 mov r4, r0 + 800479e: 460d mov r5, r1 + 80047a0: b976 cbnz r6, 80047c0 <_Balloc+0x28> + 80047a2: 2010 movs r0, #16 + 80047a4: f7ff ff42 bl 800462c + 80047a8: 4602 mov r2, r0 + 80047aa: 61e0 str r0, [r4, #28] + 80047ac: b920 cbnz r0, 80047b8 <_Balloc+0x20> + 80047ae: 4b18 ldr r3, [pc, #96] @ (8004810 <_Balloc+0x78>) + 80047b0: 4818 ldr r0, [pc, #96] @ (8004814 <_Balloc+0x7c>) + 80047b2: 216b movs r1, #107 @ 0x6b + 80047b4: f000 fc34 bl 8005020 <__assert_func> + 80047b8: e9c0 6601 strd r6, r6, [r0, #4] + 80047bc: 6006 str r6, [r0, #0] + 80047be: 60c6 str r6, [r0, #12] + 80047c0: 69e6 ldr r6, [r4, #28] + 80047c2: 68f3 ldr r3, [r6, #12] + 80047c4: b183 cbz r3, 80047e8 <_Balloc+0x50> + 80047c6: 69e3 ldr r3, [r4, #28] + 80047c8: 68db ldr r3, [r3, #12] + 80047ca: f853 0025 ldr.w r0, [r3, r5, lsl #2] + 80047ce: b9b8 cbnz r0, 8004800 <_Balloc+0x68> + 80047d0: 2101 movs r1, #1 + 80047d2: fa01 f605 lsl.w r6, r1, r5 + 80047d6: 1d72 adds r2, r6, #5 + 80047d8: 0092 lsls r2, r2, #2 + 80047da: 4620 mov r0, r4 + 80047dc: f000 fc3e bl 800505c <_calloc_r> + 80047e0: b160 cbz r0, 80047fc <_Balloc+0x64> + 80047e2: e9c0 5601 strd r5, r6, [r0, #4] + 80047e6: e00e b.n 8004806 <_Balloc+0x6e> + 80047e8: 2221 movs r2, #33 @ 0x21 + 80047ea: 2104 movs r1, #4 + 80047ec: 4620 mov r0, r4 + 80047ee: f000 fc35 bl 800505c <_calloc_r> + 80047f2: 69e3 ldr r3, [r4, #28] + 80047f4: 60f0 str r0, [r6, #12] + 80047f6: 68db ldr r3, [r3, #12] + 80047f8: 2b00 cmp r3, #0 + 80047fa: d1e4 bne.n 80047c6 <_Balloc+0x2e> + 80047fc: 2000 movs r0, #0 + 80047fe: bd70 pop {r4, r5, r6, pc} + 8004800: 6802 ldr r2, [r0, #0] + 8004802: f843 2025 str.w r2, [r3, r5, lsl #2] + 8004806: 2300 movs r3, #0 + 8004808: e9c0 3303 strd r3, r3, [r0, #12] + 800480c: e7f7 b.n 80047fe <_Balloc+0x66> + 800480e: bf00 nop + 8004810: 080056c9 .word 0x080056c9 + 8004814: 08005749 .word 0x08005749 + +08004818 <_Bfree>: + 8004818: b570 push {r4, r5, r6, lr} + 800481a: 69c6 ldr r6, [r0, #28] + 800481c: 4605 mov r5, r0 + 800481e: 460c mov r4, r1 + 8004820: b976 cbnz r6, 8004840 <_Bfree+0x28> + 8004822: 2010 movs r0, #16 + 8004824: f7ff ff02 bl 800462c + 8004828: 4602 mov r2, r0 + 800482a: 61e8 str r0, [r5, #28] + 800482c: b920 cbnz r0, 8004838 <_Bfree+0x20> + 800482e: 4b09 ldr r3, [pc, #36] @ (8004854 <_Bfree+0x3c>) + 8004830: 4809 ldr r0, [pc, #36] @ (8004858 <_Bfree+0x40>) + 8004832: 218f movs r1, #143 @ 0x8f + 8004834: f000 fbf4 bl 8005020 <__assert_func> + 8004838: e9c0 6601 strd r6, r6, [r0, #4] + 800483c: 6006 str r6, [r0, #0] + 800483e: 60c6 str r6, [r0, #12] + 8004840: b13c cbz r4, 8004852 <_Bfree+0x3a> + 8004842: 69eb ldr r3, [r5, #28] + 8004844: 6862 ldr r2, [r4, #4] + 8004846: 68db ldr r3, [r3, #12] + 8004848: f853 1022 ldr.w r1, [r3, r2, lsl #2] + 800484c: 6021 str r1, [r4, #0] + 800484e: f843 4022 str.w r4, [r3, r2, lsl #2] + 8004852: bd70 pop {r4, r5, r6, pc} + 8004854: 080056c9 .word 0x080056c9 + 8004858: 08005749 .word 0x08005749 + +0800485c <__multadd>: + 800485c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} + 8004860: 690d ldr r5, [r1, #16] + 8004862: 4607 mov r7, r0 + 8004864: 460c mov r4, r1 + 8004866: 461e mov r6, r3 + 8004868: f101 0c14 add.w ip, r1, #20 + 800486c: 2000 movs r0, #0 + 800486e: f8dc 3000 ldr.w r3, [ip] + 8004872: b299 uxth r1, r3 + 8004874: fb02 6101 mla r1, r2, r1, r6 + 8004878: 0c1e lsrs r6, r3, #16 + 800487a: 0c0b lsrs r3, r1, #16 + 800487c: fb02 3306 mla r3, r2, r6, r3 + 8004880: b289 uxth r1, r1 + 8004882: 3001 adds r0, #1 + 8004884: eb01 4103 add.w r1, r1, r3, lsl #16 + 8004888: 4285 cmp r5, r0 + 800488a: f84c 1b04 str.w r1, [ip], #4 + 800488e: ea4f 4613 mov.w r6, r3, lsr #16 + 8004892: dcec bgt.n 800486e <__multadd+0x12> + 8004894: b30e cbz r6, 80048da <__multadd+0x7e> + 8004896: 68a3 ldr r3, [r4, #8] + 8004898: 42ab cmp r3, r5 + 800489a: dc19 bgt.n 80048d0 <__multadd+0x74> + 800489c: 6861 ldr r1, [r4, #4] + 800489e: 4638 mov r0, r7 + 80048a0: 3101 adds r1, #1 + 80048a2: f7ff ff79 bl 8004798 <_Balloc> + 80048a6: 4680 mov r8, r0 + 80048a8: b928 cbnz r0, 80048b6 <__multadd+0x5a> + 80048aa: 4602 mov r2, r0 + 80048ac: 4b0c ldr r3, [pc, #48] @ (80048e0 <__multadd+0x84>) + 80048ae: 480d ldr r0, [pc, #52] @ (80048e4 <__multadd+0x88>) + 80048b0: 21ba movs r1, #186 @ 0xba + 80048b2: f000 fbb5 bl 8005020 <__assert_func> + 80048b6: 6922 ldr r2, [r4, #16] + 80048b8: 3202 adds r2, #2 + 80048ba: f104 010c add.w r1, r4, #12 + 80048be: 0092 lsls r2, r2, #2 + 80048c0: 300c adds r0, #12 + 80048c2: f000 fb9f bl 8005004 + 80048c6: 4621 mov r1, r4 + 80048c8: 4638 mov r0, r7 + 80048ca: f7ff ffa5 bl 8004818 <_Bfree> + 80048ce: 4644 mov r4, r8 + 80048d0: eb04 0385 add.w r3, r4, r5, lsl #2 + 80048d4: 3501 adds r5, #1 + 80048d6: 615e str r6, [r3, #20] + 80048d8: 6125 str r5, [r4, #16] + 80048da: 4620 mov r0, r4 + 80048dc: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} + 80048e0: 08005738 .word 0x08005738 + 80048e4: 08005749 .word 0x08005749 + +080048e8 <__hi0bits>: + 80048e8: f5b0 3f80 cmp.w r0, #65536 @ 0x10000 + 80048ec: 4603 mov r3, r0 + 80048ee: bf36 itet cc + 80048f0: 0403 lslcc r3, r0, #16 + 80048f2: 2000 movcs r0, #0 + 80048f4: 2010 movcc r0, #16 + 80048f6: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 + 80048fa: bf3c itt cc + 80048fc: 021b lslcc r3, r3, #8 + 80048fe: 3008 addcc r0, #8 + 8004900: f1b3 5f80 cmp.w r3, #268435456 @ 0x10000000 + 8004904: bf3c itt cc + 8004906: 011b lslcc r3, r3, #4 + 8004908: 3004 addcc r0, #4 + 800490a: f1b3 4f80 cmp.w r3, #1073741824 @ 0x40000000 + 800490e: bf3c itt cc + 8004910: 009b lslcc r3, r3, #2 + 8004912: 3002 addcc r0, #2 + 8004914: 2b00 cmp r3, #0 + 8004916: db05 blt.n 8004924 <__hi0bits+0x3c> + 8004918: f013 4f80 tst.w r3, #1073741824 @ 0x40000000 + 800491c: f100 0001 add.w r0, r0, #1 + 8004920: bf08 it eq + 8004922: 2020 moveq r0, #32 + 8004924: 4770 bx lr + +08004926 <__lo0bits>: + 8004926: 6803 ldr r3, [r0, #0] + 8004928: 4602 mov r2, r0 + 800492a: f013 0007 ands.w r0, r3, #7 + 800492e: d00b beq.n 8004948 <__lo0bits+0x22> + 8004930: 07d9 lsls r1, r3, #31 + 8004932: d421 bmi.n 8004978 <__lo0bits+0x52> + 8004934: 0798 lsls r0, r3, #30 + 8004936: bf49 itett mi + 8004938: 085b lsrmi r3, r3, #1 + 800493a: 089b lsrpl r3, r3, #2 + 800493c: 2001 movmi r0, #1 + 800493e: 6013 strmi r3, [r2, #0] + 8004940: bf5c itt pl + 8004942: 6013 strpl r3, [r2, #0] + 8004944: 2002 movpl r0, #2 + 8004946: 4770 bx lr + 8004948: b299 uxth r1, r3 + 800494a: b909 cbnz r1, 8004950 <__lo0bits+0x2a> + 800494c: 0c1b lsrs r3, r3, #16 + 800494e: 2010 movs r0, #16 + 8004950: b2d9 uxtb r1, r3 + 8004952: b909 cbnz r1, 8004958 <__lo0bits+0x32> + 8004954: 3008 adds r0, #8 + 8004956: 0a1b lsrs r3, r3, #8 + 8004958: 0719 lsls r1, r3, #28 + 800495a: bf04 itt eq + 800495c: 091b lsreq r3, r3, #4 + 800495e: 3004 addeq r0, #4 + 8004960: 0799 lsls r1, r3, #30 + 8004962: bf04 itt eq + 8004964: 089b lsreq r3, r3, #2 + 8004966: 3002 addeq r0, #2 + 8004968: 07d9 lsls r1, r3, #31 + 800496a: d403 bmi.n 8004974 <__lo0bits+0x4e> + 800496c: 085b lsrs r3, r3, #1 + 800496e: f100 0001 add.w r0, r0, #1 + 8004972: d003 beq.n 800497c <__lo0bits+0x56> + 8004974: 6013 str r3, [r2, #0] + 8004976: 4770 bx lr + 8004978: 2000 movs r0, #0 + 800497a: 4770 bx lr + 800497c: 2020 movs r0, #32 + 800497e: 4770 bx lr + +08004980 <__i2b>: + 8004980: b510 push {r4, lr} + 8004982: 460c mov r4, r1 + 8004984: 2101 movs r1, #1 + 8004986: f7ff ff07 bl 8004798 <_Balloc> + 800498a: 4602 mov r2, r0 + 800498c: b928 cbnz r0, 800499a <__i2b+0x1a> + 800498e: 4b05 ldr r3, [pc, #20] @ (80049a4 <__i2b+0x24>) + 8004990: 4805 ldr r0, [pc, #20] @ (80049a8 <__i2b+0x28>) + 8004992: f240 1145 movw r1, #325 @ 0x145 + 8004996: f000 fb43 bl 8005020 <__assert_func> + 800499a: 2301 movs r3, #1 + 800499c: 6144 str r4, [r0, #20] + 800499e: 6103 str r3, [r0, #16] + 80049a0: bd10 pop {r4, pc} + 80049a2: bf00 nop + 80049a4: 08005738 .word 0x08005738 + 80049a8: 08005749 .word 0x08005749 + +080049ac <__multiply>: + 80049ac: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 80049b0: 4617 mov r7, r2 + 80049b2: 690a ldr r2, [r1, #16] + 80049b4: 693b ldr r3, [r7, #16] + 80049b6: 429a cmp r2, r3 + 80049b8: bfa8 it ge + 80049ba: 463b movge r3, r7 + 80049bc: 4689 mov r9, r1 + 80049be: bfa4 itt ge + 80049c0: 460f movge r7, r1 + 80049c2: 4699 movge r9, r3 + 80049c4: 693d ldr r5, [r7, #16] + 80049c6: f8d9 a010 ldr.w sl, [r9, #16] + 80049ca: 68bb ldr r3, [r7, #8] + 80049cc: 6879 ldr r1, [r7, #4] + 80049ce: eb05 060a add.w r6, r5, sl + 80049d2: 42b3 cmp r3, r6 + 80049d4: b085 sub sp, #20 + 80049d6: bfb8 it lt + 80049d8: 3101 addlt r1, #1 + 80049da: f7ff fedd bl 8004798 <_Balloc> + 80049de: b930 cbnz r0, 80049ee <__multiply+0x42> + 80049e0: 4602 mov r2, r0 + 80049e2: 4b41 ldr r3, [pc, #260] @ (8004ae8 <__multiply+0x13c>) + 80049e4: 4841 ldr r0, [pc, #260] @ (8004aec <__multiply+0x140>) + 80049e6: f44f 71b1 mov.w r1, #354 @ 0x162 + 80049ea: f000 fb19 bl 8005020 <__assert_func> + 80049ee: f100 0414 add.w r4, r0, #20 + 80049f2: eb04 0e86 add.w lr, r4, r6, lsl #2 + 80049f6: 4623 mov r3, r4 + 80049f8: 2200 movs r2, #0 + 80049fa: 4573 cmp r3, lr + 80049fc: d320 bcc.n 8004a40 <__multiply+0x94> + 80049fe: f107 0814 add.w r8, r7, #20 + 8004a02: f109 0114 add.w r1, r9, #20 + 8004a06: eb08 0585 add.w r5, r8, r5, lsl #2 + 8004a0a: eb01 038a add.w r3, r1, sl, lsl #2 + 8004a0e: 9302 str r3, [sp, #8] + 8004a10: 1beb subs r3, r5, r7 + 8004a12: 3b15 subs r3, #21 + 8004a14: f023 0303 bic.w r3, r3, #3 + 8004a18: 3304 adds r3, #4 + 8004a1a: 3715 adds r7, #21 + 8004a1c: 42bd cmp r5, r7 + 8004a1e: bf38 it cc + 8004a20: 2304 movcc r3, #4 + 8004a22: 9301 str r3, [sp, #4] + 8004a24: 9b02 ldr r3, [sp, #8] + 8004a26: 9103 str r1, [sp, #12] + 8004a28: 428b cmp r3, r1 + 8004a2a: d80c bhi.n 8004a46 <__multiply+0x9a> + 8004a2c: 2e00 cmp r6, #0 + 8004a2e: dd03 ble.n 8004a38 <__multiply+0x8c> + 8004a30: f85e 3d04 ldr.w r3, [lr, #-4]! + 8004a34: 2b00 cmp r3, #0 + 8004a36: d055 beq.n 8004ae4 <__multiply+0x138> + 8004a38: 6106 str r6, [r0, #16] + 8004a3a: b005 add sp, #20 + 8004a3c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8004a40: f843 2b04 str.w r2, [r3], #4 + 8004a44: e7d9 b.n 80049fa <__multiply+0x4e> + 8004a46: f8b1 a000 ldrh.w sl, [r1] + 8004a4a: f1ba 0f00 cmp.w sl, #0 + 8004a4e: d01f beq.n 8004a90 <__multiply+0xe4> + 8004a50: 46c4 mov ip, r8 + 8004a52: 46a1 mov r9, r4 + 8004a54: 2700 movs r7, #0 + 8004a56: f85c 2b04 ldr.w r2, [ip], #4 + 8004a5a: f8d9 3000 ldr.w r3, [r9] + 8004a5e: fa1f fb82 uxth.w fp, r2 + 8004a62: b29b uxth r3, r3 + 8004a64: fb0a 330b mla r3, sl, fp, r3 + 8004a68: 443b add r3, r7 + 8004a6a: f8d9 7000 ldr.w r7, [r9] + 8004a6e: 0c12 lsrs r2, r2, #16 + 8004a70: 0c3f lsrs r7, r7, #16 + 8004a72: fb0a 7202 mla r2, sl, r2, r7 + 8004a76: eb02 4213 add.w r2, r2, r3, lsr #16 + 8004a7a: b29b uxth r3, r3 + 8004a7c: ea43 4302 orr.w r3, r3, r2, lsl #16 + 8004a80: 4565 cmp r5, ip + 8004a82: f849 3b04 str.w r3, [r9], #4 + 8004a86: ea4f 4712 mov.w r7, r2, lsr #16 + 8004a8a: d8e4 bhi.n 8004a56 <__multiply+0xaa> + 8004a8c: 9b01 ldr r3, [sp, #4] + 8004a8e: 50e7 str r7, [r4, r3] + 8004a90: 9b03 ldr r3, [sp, #12] + 8004a92: f8b3 9002 ldrh.w r9, [r3, #2] + 8004a96: 3104 adds r1, #4 + 8004a98: f1b9 0f00 cmp.w r9, #0 + 8004a9c: d020 beq.n 8004ae0 <__multiply+0x134> + 8004a9e: 6823 ldr r3, [r4, #0] + 8004aa0: 4647 mov r7, r8 + 8004aa2: 46a4 mov ip, r4 + 8004aa4: f04f 0a00 mov.w sl, #0 + 8004aa8: f8b7 b000 ldrh.w fp, [r7] + 8004aac: f8bc 2002 ldrh.w r2, [ip, #2] + 8004ab0: fb09 220b mla r2, r9, fp, r2 + 8004ab4: 4452 add r2, sl + 8004ab6: b29b uxth r3, r3 + 8004ab8: ea43 4302 orr.w r3, r3, r2, lsl #16 + 8004abc: f84c 3b04 str.w r3, [ip], #4 + 8004ac0: f857 3b04 ldr.w r3, [r7], #4 + 8004ac4: ea4f 4a13 mov.w sl, r3, lsr #16 + 8004ac8: f8bc 3000 ldrh.w r3, [ip] + 8004acc: fb09 330a mla r3, r9, sl, r3 + 8004ad0: eb03 4312 add.w r3, r3, r2, lsr #16 + 8004ad4: 42bd cmp r5, r7 + 8004ad6: ea4f 4a13 mov.w sl, r3, lsr #16 + 8004ada: d8e5 bhi.n 8004aa8 <__multiply+0xfc> + 8004adc: 9a01 ldr r2, [sp, #4] + 8004ade: 50a3 str r3, [r4, r2] + 8004ae0: 3404 adds r4, #4 + 8004ae2: e79f b.n 8004a24 <__multiply+0x78> + 8004ae4: 3e01 subs r6, #1 + 8004ae6: e7a1 b.n 8004a2c <__multiply+0x80> + 8004ae8: 08005738 .word 0x08005738 + 8004aec: 08005749 .word 0x08005749 + +08004af0 <__pow5mult>: + 8004af0: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + 8004af4: 4615 mov r5, r2 + 8004af6: f012 0203 ands.w r2, r2, #3 + 8004afa: 4607 mov r7, r0 + 8004afc: 460e mov r6, r1 + 8004afe: d007 beq.n 8004b10 <__pow5mult+0x20> + 8004b00: 4c25 ldr r4, [pc, #148] @ (8004b98 <__pow5mult+0xa8>) + 8004b02: 3a01 subs r2, #1 + 8004b04: 2300 movs r3, #0 + 8004b06: f854 2022 ldr.w r2, [r4, r2, lsl #2] + 8004b0a: f7ff fea7 bl 800485c <__multadd> + 8004b0e: 4606 mov r6, r0 + 8004b10: 10ad asrs r5, r5, #2 + 8004b12: d03d beq.n 8004b90 <__pow5mult+0xa0> + 8004b14: 69fc ldr r4, [r7, #28] + 8004b16: b97c cbnz r4, 8004b38 <__pow5mult+0x48> + 8004b18: 2010 movs r0, #16 + 8004b1a: f7ff fd87 bl 800462c + 8004b1e: 4602 mov r2, r0 + 8004b20: 61f8 str r0, [r7, #28] + 8004b22: b928 cbnz r0, 8004b30 <__pow5mult+0x40> + 8004b24: 4b1d ldr r3, [pc, #116] @ (8004b9c <__pow5mult+0xac>) + 8004b26: 481e ldr r0, [pc, #120] @ (8004ba0 <__pow5mult+0xb0>) + 8004b28: f240 11b3 movw r1, #435 @ 0x1b3 + 8004b2c: f000 fa78 bl 8005020 <__assert_func> + 8004b30: e9c0 4401 strd r4, r4, [r0, #4] + 8004b34: 6004 str r4, [r0, #0] + 8004b36: 60c4 str r4, [r0, #12] + 8004b38: f8d7 801c ldr.w r8, [r7, #28] + 8004b3c: f8d8 4008 ldr.w r4, [r8, #8] + 8004b40: b94c cbnz r4, 8004b56 <__pow5mult+0x66> + 8004b42: f240 2171 movw r1, #625 @ 0x271 + 8004b46: 4638 mov r0, r7 + 8004b48: f7ff ff1a bl 8004980 <__i2b> + 8004b4c: 2300 movs r3, #0 + 8004b4e: f8c8 0008 str.w r0, [r8, #8] + 8004b52: 4604 mov r4, r0 + 8004b54: 6003 str r3, [r0, #0] + 8004b56: f04f 0900 mov.w r9, #0 + 8004b5a: 07eb lsls r3, r5, #31 + 8004b5c: d50a bpl.n 8004b74 <__pow5mult+0x84> + 8004b5e: 4631 mov r1, r6 + 8004b60: 4622 mov r2, r4 + 8004b62: 4638 mov r0, r7 + 8004b64: f7ff ff22 bl 80049ac <__multiply> + 8004b68: 4631 mov r1, r6 + 8004b6a: 4680 mov r8, r0 + 8004b6c: 4638 mov r0, r7 + 8004b6e: f7ff fe53 bl 8004818 <_Bfree> + 8004b72: 4646 mov r6, r8 + 8004b74: 106d asrs r5, r5, #1 + 8004b76: d00b beq.n 8004b90 <__pow5mult+0xa0> + 8004b78: 6820 ldr r0, [r4, #0] + 8004b7a: b938 cbnz r0, 8004b8c <__pow5mult+0x9c> + 8004b7c: 4622 mov r2, r4 + 8004b7e: 4621 mov r1, r4 + 8004b80: 4638 mov r0, r7 + 8004b82: f7ff ff13 bl 80049ac <__multiply> + 8004b86: 6020 str r0, [r4, #0] + 8004b88: f8c0 9000 str.w r9, [r0] + 8004b8c: 4604 mov r4, r0 + 8004b8e: e7e4 b.n 8004b5a <__pow5mult+0x6a> + 8004b90: 4630 mov r0, r6 + 8004b92: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} + 8004b96: bf00 nop + 8004b98: 080057fc .word 0x080057fc + 8004b9c: 080056c9 .word 0x080056c9 + 8004ba0: 08005749 .word 0x08005749 + +08004ba4 <__lshift>: + 8004ba4: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 8004ba8: 460c mov r4, r1 + 8004baa: 6849 ldr r1, [r1, #4] + 8004bac: 6923 ldr r3, [r4, #16] + 8004bae: eb03 1862 add.w r8, r3, r2, asr #5 + 8004bb2: 68a3 ldr r3, [r4, #8] + 8004bb4: 4607 mov r7, r0 + 8004bb6: 4691 mov r9, r2 + 8004bb8: ea4f 1a62 mov.w sl, r2, asr #5 + 8004bbc: f108 0601 add.w r6, r8, #1 + 8004bc0: 42b3 cmp r3, r6 + 8004bc2: db0b blt.n 8004bdc <__lshift+0x38> + 8004bc4: 4638 mov r0, r7 + 8004bc6: f7ff fde7 bl 8004798 <_Balloc> + 8004bca: 4605 mov r5, r0 + 8004bcc: b948 cbnz r0, 8004be2 <__lshift+0x3e> + 8004bce: 4602 mov r2, r0 + 8004bd0: 4b28 ldr r3, [pc, #160] @ (8004c74 <__lshift+0xd0>) + 8004bd2: 4829 ldr r0, [pc, #164] @ (8004c78 <__lshift+0xd4>) + 8004bd4: f44f 71ef mov.w r1, #478 @ 0x1de + 8004bd8: f000 fa22 bl 8005020 <__assert_func> + 8004bdc: 3101 adds r1, #1 + 8004bde: 005b lsls r3, r3, #1 + 8004be0: e7ee b.n 8004bc0 <__lshift+0x1c> + 8004be2: 2300 movs r3, #0 + 8004be4: f100 0114 add.w r1, r0, #20 + 8004be8: f100 0210 add.w r2, r0, #16 + 8004bec: 4618 mov r0, r3 + 8004bee: 4553 cmp r3, sl + 8004bf0: db33 blt.n 8004c5a <__lshift+0xb6> + 8004bf2: 6920 ldr r0, [r4, #16] + 8004bf4: ea2a 7aea bic.w sl, sl, sl, asr #31 + 8004bf8: f104 0314 add.w r3, r4, #20 + 8004bfc: f019 091f ands.w r9, r9, #31 + 8004c00: eb01 018a add.w r1, r1, sl, lsl #2 + 8004c04: eb03 0c80 add.w ip, r3, r0, lsl #2 + 8004c08: d02b beq.n 8004c62 <__lshift+0xbe> + 8004c0a: f1c9 0e20 rsb lr, r9, #32 + 8004c0e: 468a mov sl, r1 + 8004c10: 2200 movs r2, #0 + 8004c12: 6818 ldr r0, [r3, #0] + 8004c14: fa00 f009 lsl.w r0, r0, r9 + 8004c18: 4310 orrs r0, r2 + 8004c1a: f84a 0b04 str.w r0, [sl], #4 + 8004c1e: f853 2b04 ldr.w r2, [r3], #4 + 8004c22: 459c cmp ip, r3 + 8004c24: fa22 f20e lsr.w r2, r2, lr + 8004c28: d8f3 bhi.n 8004c12 <__lshift+0x6e> + 8004c2a: ebac 0304 sub.w r3, ip, r4 + 8004c2e: 3b15 subs r3, #21 + 8004c30: f023 0303 bic.w r3, r3, #3 + 8004c34: 3304 adds r3, #4 + 8004c36: f104 0015 add.w r0, r4, #21 + 8004c3a: 4560 cmp r0, ip + 8004c3c: bf88 it hi + 8004c3e: 2304 movhi r3, #4 + 8004c40: 50ca str r2, [r1, r3] + 8004c42: b10a cbz r2, 8004c48 <__lshift+0xa4> + 8004c44: f108 0602 add.w r6, r8, #2 + 8004c48: 3e01 subs r6, #1 + 8004c4a: 4638 mov r0, r7 + 8004c4c: 612e str r6, [r5, #16] + 8004c4e: 4621 mov r1, r4 + 8004c50: f7ff fde2 bl 8004818 <_Bfree> + 8004c54: 4628 mov r0, r5 + 8004c56: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8004c5a: f842 0f04 str.w r0, [r2, #4]! + 8004c5e: 3301 adds r3, #1 + 8004c60: e7c5 b.n 8004bee <__lshift+0x4a> + 8004c62: 3904 subs r1, #4 + 8004c64: f853 2b04 ldr.w r2, [r3], #4 + 8004c68: f841 2f04 str.w r2, [r1, #4]! + 8004c6c: 459c cmp ip, r3 + 8004c6e: d8f9 bhi.n 8004c64 <__lshift+0xc0> + 8004c70: e7ea b.n 8004c48 <__lshift+0xa4> + 8004c72: bf00 nop + 8004c74: 08005738 .word 0x08005738 + 8004c78: 08005749 .word 0x08005749 + +08004c7c <__mcmp>: + 8004c7c: 690a ldr r2, [r1, #16] + 8004c7e: 4603 mov r3, r0 + 8004c80: 6900 ldr r0, [r0, #16] + 8004c82: 1a80 subs r0, r0, r2 + 8004c84: b530 push {r4, r5, lr} + 8004c86: d10e bne.n 8004ca6 <__mcmp+0x2a> + 8004c88: 3314 adds r3, #20 + 8004c8a: 3114 adds r1, #20 + 8004c8c: eb03 0482 add.w r4, r3, r2, lsl #2 + 8004c90: eb01 0182 add.w r1, r1, r2, lsl #2 + 8004c94: f854 5d04 ldr.w r5, [r4, #-4]! + 8004c98: f851 2d04 ldr.w r2, [r1, #-4]! + 8004c9c: 4295 cmp r5, r2 + 8004c9e: d003 beq.n 8004ca8 <__mcmp+0x2c> + 8004ca0: d205 bcs.n 8004cae <__mcmp+0x32> + 8004ca2: f04f 30ff mov.w r0, #4294967295 + 8004ca6: bd30 pop {r4, r5, pc} + 8004ca8: 42a3 cmp r3, r4 + 8004caa: d3f3 bcc.n 8004c94 <__mcmp+0x18> + 8004cac: e7fb b.n 8004ca6 <__mcmp+0x2a> + 8004cae: 2001 movs r0, #1 + 8004cb0: e7f9 b.n 8004ca6 <__mcmp+0x2a> ... -0800966c <_svfiprintf_r>: - 800966c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8009670: 4698 mov r8, r3 - 8009672: 898b ldrh r3, [r1, #12] - 8009674: 061b lsls r3, r3, #24 - 8009676: b09d sub sp, #116 @ 0x74 - 8009678: 4607 mov r7, r0 - 800967a: 460d mov r5, r1 - 800967c: 4614 mov r4, r2 - 800967e: d510 bpl.n 80096a2 <_svfiprintf_r+0x36> - 8009680: 690b ldr r3, [r1, #16] - 8009682: b973 cbnz r3, 80096a2 <_svfiprintf_r+0x36> - 8009684: 2140 movs r1, #64 @ 0x40 - 8009686: f7ff fb8f bl 8008da8 <_malloc_r> - 800968a: 6028 str r0, [r5, #0] - 800968c: 6128 str r0, [r5, #16] - 800968e: b930 cbnz r0, 800969e <_svfiprintf_r+0x32> - 8009690: 230c movs r3, #12 - 8009692: 603b str r3, [r7, #0] - 8009694: f04f 30ff mov.w r0, #4294967295 - 8009698: b01d add sp, #116 @ 0x74 - 800969a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800969e: 2340 movs r3, #64 @ 0x40 - 80096a0: 616b str r3, [r5, #20] - 80096a2: 2300 movs r3, #0 - 80096a4: 9309 str r3, [sp, #36] @ 0x24 - 80096a6: 2320 movs r3, #32 - 80096a8: f88d 3029 strb.w r3, [sp, #41] @ 0x29 - 80096ac: f8cd 800c str.w r8, [sp, #12] - 80096b0: 2330 movs r3, #48 @ 0x30 - 80096b2: f8df 819c ldr.w r8, [pc, #412] @ 8009850 <_svfiprintf_r+0x1e4> - 80096b6: f88d 302a strb.w r3, [sp, #42] @ 0x2a - 80096ba: f04f 0901 mov.w r9, #1 - 80096be: 4623 mov r3, r4 - 80096c0: 469a mov sl, r3 - 80096c2: f813 2b01 ldrb.w r2, [r3], #1 - 80096c6: b10a cbz r2, 80096cc <_svfiprintf_r+0x60> - 80096c8: 2a25 cmp r2, #37 @ 0x25 - 80096ca: d1f9 bne.n 80096c0 <_svfiprintf_r+0x54> - 80096cc: ebba 0b04 subs.w fp, sl, r4 - 80096d0: d00b beq.n 80096ea <_svfiprintf_r+0x7e> - 80096d2: 465b mov r3, fp - 80096d4: 4622 mov r2, r4 - 80096d6: 4629 mov r1, r5 - 80096d8: 4638 mov r0, r7 - 80096da: f7ff ff6b bl 80095b4 <__ssputs_r> - 80096de: 3001 adds r0, #1 - 80096e0: f000 80a7 beq.w 8009832 <_svfiprintf_r+0x1c6> - 80096e4: 9a09 ldr r2, [sp, #36] @ 0x24 - 80096e6: 445a add r2, fp - 80096e8: 9209 str r2, [sp, #36] @ 0x24 - 80096ea: f89a 3000 ldrb.w r3, [sl] - 80096ee: 2b00 cmp r3, #0 - 80096f0: f000 809f beq.w 8009832 <_svfiprintf_r+0x1c6> - 80096f4: 2300 movs r3, #0 - 80096f6: f04f 32ff mov.w r2, #4294967295 - 80096fa: e9cd 2305 strd r2, r3, [sp, #20] - 80096fe: f10a 0a01 add.w sl, sl, #1 - 8009702: 9304 str r3, [sp, #16] - 8009704: 9307 str r3, [sp, #28] - 8009706: f88d 3053 strb.w r3, [sp, #83] @ 0x53 - 800970a: 931a str r3, [sp, #104] @ 0x68 - 800970c: 4654 mov r4, sl - 800970e: 2205 movs r2, #5 - 8009710: f814 1b01 ldrb.w r1, [r4], #1 - 8009714: 484e ldr r0, [pc, #312] @ (8009850 <_svfiprintf_r+0x1e4>) - 8009716: f7f6 fd63 bl 80001e0 - 800971a: 9a04 ldr r2, [sp, #16] - 800971c: b9d8 cbnz r0, 8009756 <_svfiprintf_r+0xea> - 800971e: 06d0 lsls r0, r2, #27 - 8009720: bf44 itt mi - 8009722: 2320 movmi r3, #32 - 8009724: f88d 3053 strbmi.w r3, [sp, #83] @ 0x53 - 8009728: 0711 lsls r1, r2, #28 - 800972a: bf44 itt mi - 800972c: 232b movmi r3, #43 @ 0x2b - 800972e: f88d 3053 strbmi.w r3, [sp, #83] @ 0x53 - 8009732: f89a 3000 ldrb.w r3, [sl] - 8009736: 2b2a cmp r3, #42 @ 0x2a - 8009738: d015 beq.n 8009766 <_svfiprintf_r+0xfa> - 800973a: 9a07 ldr r2, [sp, #28] - 800973c: 4654 mov r4, sl - 800973e: 2000 movs r0, #0 - 8009740: f04f 0c0a mov.w ip, #10 - 8009744: 4621 mov r1, r4 - 8009746: f811 3b01 ldrb.w r3, [r1], #1 - 800974a: 3b30 subs r3, #48 @ 0x30 - 800974c: 2b09 cmp r3, #9 - 800974e: d94b bls.n 80097e8 <_svfiprintf_r+0x17c> - 8009750: b1b0 cbz r0, 8009780 <_svfiprintf_r+0x114> - 8009752: 9207 str r2, [sp, #28] - 8009754: e014 b.n 8009780 <_svfiprintf_r+0x114> - 8009756: eba0 0308 sub.w r3, r0, r8 - 800975a: fa09 f303 lsl.w r3, r9, r3 - 800975e: 4313 orrs r3, r2 - 8009760: 9304 str r3, [sp, #16] - 8009762: 46a2 mov sl, r4 - 8009764: e7d2 b.n 800970c <_svfiprintf_r+0xa0> - 8009766: 9b03 ldr r3, [sp, #12] - 8009768: 1d19 adds r1, r3, #4 - 800976a: 681b ldr r3, [r3, #0] - 800976c: 9103 str r1, [sp, #12] - 800976e: 2b00 cmp r3, #0 - 8009770: bfbb ittet lt - 8009772: 425b neglt r3, r3 - 8009774: f042 0202 orrlt.w r2, r2, #2 - 8009778: 9307 strge r3, [sp, #28] - 800977a: 9307 strlt r3, [sp, #28] - 800977c: bfb8 it lt - 800977e: 9204 strlt r2, [sp, #16] - 8009780: 7823 ldrb r3, [r4, #0] - 8009782: 2b2e cmp r3, #46 @ 0x2e - 8009784: d10a bne.n 800979c <_svfiprintf_r+0x130> - 8009786: 7863 ldrb r3, [r4, #1] - 8009788: 2b2a cmp r3, #42 @ 0x2a - 800978a: d132 bne.n 80097f2 <_svfiprintf_r+0x186> - 800978c: 9b03 ldr r3, [sp, #12] - 800978e: 1d1a adds r2, r3, #4 - 8009790: 681b ldr r3, [r3, #0] - 8009792: 9203 str r2, [sp, #12] - 8009794: ea43 73e3 orr.w r3, r3, r3, asr #31 - 8009798: 3402 adds r4, #2 - 800979a: 9305 str r3, [sp, #20] - 800979c: f8df a0c0 ldr.w sl, [pc, #192] @ 8009860 <_svfiprintf_r+0x1f4> - 80097a0: 7821 ldrb r1, [r4, #0] - 80097a2: 2203 movs r2, #3 - 80097a4: 4650 mov r0, sl - 80097a6: f7f6 fd1b bl 80001e0 - 80097aa: b138 cbz r0, 80097bc <_svfiprintf_r+0x150> - 80097ac: 9b04 ldr r3, [sp, #16] - 80097ae: eba0 000a sub.w r0, r0, sl - 80097b2: 2240 movs r2, #64 @ 0x40 - 80097b4: 4082 lsls r2, r0 - 80097b6: 4313 orrs r3, r2 - 80097b8: 3401 adds r4, #1 - 80097ba: 9304 str r3, [sp, #16] - 80097bc: f814 1b01 ldrb.w r1, [r4], #1 - 80097c0: 4824 ldr r0, [pc, #144] @ (8009854 <_svfiprintf_r+0x1e8>) - 80097c2: f88d 1028 strb.w r1, [sp, #40] @ 0x28 - 80097c6: 2206 movs r2, #6 - 80097c8: f7f6 fd0a bl 80001e0 - 80097cc: 2800 cmp r0, #0 - 80097ce: d036 beq.n 800983e <_svfiprintf_r+0x1d2> - 80097d0: 4b21 ldr r3, [pc, #132] @ (8009858 <_svfiprintf_r+0x1ec>) - 80097d2: bb1b cbnz r3, 800981c <_svfiprintf_r+0x1b0> - 80097d4: 9b03 ldr r3, [sp, #12] - 80097d6: 3307 adds r3, #7 - 80097d8: f023 0307 bic.w r3, r3, #7 - 80097dc: 3308 adds r3, #8 - 80097de: 9303 str r3, [sp, #12] - 80097e0: 9b09 ldr r3, [sp, #36] @ 0x24 - 80097e2: 4433 add r3, r6 - 80097e4: 9309 str r3, [sp, #36] @ 0x24 - 80097e6: e76a b.n 80096be <_svfiprintf_r+0x52> - 80097e8: fb0c 3202 mla r2, ip, r2, r3 - 80097ec: 460c mov r4, r1 - 80097ee: 2001 movs r0, #1 - 80097f0: e7a8 b.n 8009744 <_svfiprintf_r+0xd8> - 80097f2: 2300 movs r3, #0 - 80097f4: 3401 adds r4, #1 - 80097f6: 9305 str r3, [sp, #20] - 80097f8: 4619 mov r1, r3 - 80097fa: f04f 0c0a mov.w ip, #10 - 80097fe: 4620 mov r0, r4 - 8009800: f810 2b01 ldrb.w r2, [r0], #1 - 8009804: 3a30 subs r2, #48 @ 0x30 - 8009806: 2a09 cmp r2, #9 - 8009808: d903 bls.n 8009812 <_svfiprintf_r+0x1a6> - 800980a: 2b00 cmp r3, #0 - 800980c: d0c6 beq.n 800979c <_svfiprintf_r+0x130> - 800980e: 9105 str r1, [sp, #20] - 8009810: e7c4 b.n 800979c <_svfiprintf_r+0x130> - 8009812: fb0c 2101 mla r1, ip, r1, r2 - 8009816: 4604 mov r4, r0 - 8009818: 2301 movs r3, #1 - 800981a: e7f0 b.n 80097fe <_svfiprintf_r+0x192> - 800981c: ab03 add r3, sp, #12 - 800981e: 9300 str r3, [sp, #0] - 8009820: 462a mov r2, r5 - 8009822: 4b0e ldr r3, [pc, #56] @ (800985c <_svfiprintf_r+0x1f0>) - 8009824: a904 add r1, sp, #16 - 8009826: 4638 mov r0, r7 - 8009828: f7fd fe6e bl 8007508 <_printf_float> - 800982c: 1c42 adds r2, r0, #1 - 800982e: 4606 mov r6, r0 - 8009830: d1d6 bne.n 80097e0 <_svfiprintf_r+0x174> - 8009832: 89ab ldrh r3, [r5, #12] - 8009834: 065b lsls r3, r3, #25 - 8009836: f53f af2d bmi.w 8009694 <_svfiprintf_r+0x28> - 800983a: 9809 ldr r0, [sp, #36] @ 0x24 - 800983c: e72c b.n 8009698 <_svfiprintf_r+0x2c> - 800983e: ab03 add r3, sp, #12 - 8009840: 9300 str r3, [sp, #0] - 8009842: 462a mov r2, r5 - 8009844: 4b05 ldr r3, [pc, #20] @ (800985c <_svfiprintf_r+0x1f0>) - 8009846: a904 add r1, sp, #16 - 8009848: 4638 mov r0, r7 - 800984a: f7fe f8f5 bl 8007a38 <_printf_i> - 800984e: e7ed b.n 800982c <_svfiprintf_r+0x1c0> - 8009850: 0800ba9e .word 0x0800ba9e - 8009854: 0800baa8 .word 0x0800baa8 - 8009858: 08007509 .word 0x08007509 - 800985c: 080095b5 .word 0x080095b5 - 8009860: 0800baa4 .word 0x0800baa4 +08004cb4 <__mdiff>: + 8004cb4: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} + 8004cb8: 4689 mov r9, r1 + 8004cba: 4606 mov r6, r0 + 8004cbc: 4611 mov r1, r2 + 8004cbe: 4648 mov r0, r9 + 8004cc0: 4614 mov r4, r2 + 8004cc2: f7ff ffdb bl 8004c7c <__mcmp> + 8004cc6: 1e05 subs r5, r0, #0 + 8004cc8: d112 bne.n 8004cf0 <__mdiff+0x3c> + 8004cca: 4629 mov r1, r5 + 8004ccc: 4630 mov r0, r6 + 8004cce: f7ff fd63 bl 8004798 <_Balloc> + 8004cd2: 4602 mov r2, r0 + 8004cd4: b928 cbnz r0, 8004ce2 <__mdiff+0x2e> + 8004cd6: 4b3f ldr r3, [pc, #252] @ (8004dd4 <__mdiff+0x120>) + 8004cd8: f240 2137 movw r1, #567 @ 0x237 + 8004cdc: 483e ldr r0, [pc, #248] @ (8004dd8 <__mdiff+0x124>) + 8004cde: f000 f99f bl 8005020 <__assert_func> + 8004ce2: 2301 movs r3, #1 + 8004ce4: e9c0 3504 strd r3, r5, [r0, #16] + 8004ce8: 4610 mov r0, r2 + 8004cea: b003 add sp, #12 + 8004cec: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8004cf0: bfbc itt lt + 8004cf2: 464b movlt r3, r9 + 8004cf4: 46a1 movlt r9, r4 + 8004cf6: 4630 mov r0, r6 + 8004cf8: f8d9 1004 ldr.w r1, [r9, #4] + 8004cfc: bfba itte lt + 8004cfe: 461c movlt r4, r3 + 8004d00: 2501 movlt r5, #1 + 8004d02: 2500 movge r5, #0 + 8004d04: f7ff fd48 bl 8004798 <_Balloc> + 8004d08: 4602 mov r2, r0 + 8004d0a: b918 cbnz r0, 8004d14 <__mdiff+0x60> + 8004d0c: 4b31 ldr r3, [pc, #196] @ (8004dd4 <__mdiff+0x120>) + 8004d0e: f240 2145 movw r1, #581 @ 0x245 + 8004d12: e7e3 b.n 8004cdc <__mdiff+0x28> + 8004d14: f8d9 7010 ldr.w r7, [r9, #16] + 8004d18: 6926 ldr r6, [r4, #16] + 8004d1a: 60c5 str r5, [r0, #12] + 8004d1c: f109 0310 add.w r3, r9, #16 + 8004d20: f109 0514 add.w r5, r9, #20 + 8004d24: f104 0e14 add.w lr, r4, #20 + 8004d28: f100 0b14 add.w fp, r0, #20 + 8004d2c: eb05 0887 add.w r8, r5, r7, lsl #2 + 8004d30: eb0e 0686 add.w r6, lr, r6, lsl #2 + 8004d34: 9301 str r3, [sp, #4] + 8004d36: 46d9 mov r9, fp + 8004d38: f04f 0c00 mov.w ip, #0 + 8004d3c: 9b01 ldr r3, [sp, #4] + 8004d3e: f85e 0b04 ldr.w r0, [lr], #4 + 8004d42: f853 af04 ldr.w sl, [r3, #4]! + 8004d46: 9301 str r3, [sp, #4] + 8004d48: fa1f f38a uxth.w r3, sl + 8004d4c: 4619 mov r1, r3 + 8004d4e: b283 uxth r3, r0 + 8004d50: 1acb subs r3, r1, r3 + 8004d52: 0c00 lsrs r0, r0, #16 + 8004d54: 4463 add r3, ip + 8004d56: ebc0 401a rsb r0, r0, sl, lsr #16 + 8004d5a: eb00 4023 add.w r0, r0, r3, asr #16 + 8004d5e: b29b uxth r3, r3 + 8004d60: ea43 4300 orr.w r3, r3, r0, lsl #16 + 8004d64: 4576 cmp r6, lr + 8004d66: f849 3b04 str.w r3, [r9], #4 + 8004d6a: ea4f 4c20 mov.w ip, r0, asr #16 + 8004d6e: d8e5 bhi.n 8004d3c <__mdiff+0x88> + 8004d70: 1b33 subs r3, r6, r4 + 8004d72: 3b15 subs r3, #21 + 8004d74: f023 0303 bic.w r3, r3, #3 + 8004d78: 3415 adds r4, #21 + 8004d7a: 3304 adds r3, #4 + 8004d7c: 42a6 cmp r6, r4 + 8004d7e: bf38 it cc + 8004d80: 2304 movcc r3, #4 + 8004d82: 441d add r5, r3 + 8004d84: 445b add r3, fp + 8004d86: 461e mov r6, r3 + 8004d88: 462c mov r4, r5 + 8004d8a: 4544 cmp r4, r8 + 8004d8c: d30e bcc.n 8004dac <__mdiff+0xf8> + 8004d8e: f108 0103 add.w r1, r8, #3 + 8004d92: 1b49 subs r1, r1, r5 + 8004d94: f021 0103 bic.w r1, r1, #3 + 8004d98: 3d03 subs r5, #3 + 8004d9a: 45a8 cmp r8, r5 + 8004d9c: bf38 it cc + 8004d9e: 2100 movcc r1, #0 + 8004da0: 440b add r3, r1 + 8004da2: f853 1d04 ldr.w r1, [r3, #-4]! + 8004da6: b191 cbz r1, 8004dce <__mdiff+0x11a> + 8004da8: 6117 str r7, [r2, #16] + 8004daa: e79d b.n 8004ce8 <__mdiff+0x34> + 8004dac: f854 1b04 ldr.w r1, [r4], #4 + 8004db0: 46e6 mov lr, ip + 8004db2: 0c08 lsrs r0, r1, #16 + 8004db4: fa1c fc81 uxtah ip, ip, r1 + 8004db8: 4471 add r1, lr + 8004dba: eb00 402c add.w r0, r0, ip, asr #16 + 8004dbe: b289 uxth r1, r1 + 8004dc0: ea41 4100 orr.w r1, r1, r0, lsl #16 + 8004dc4: f846 1b04 str.w r1, [r6], #4 + 8004dc8: ea4f 4c20 mov.w ip, r0, asr #16 + 8004dcc: e7dd b.n 8004d8a <__mdiff+0xd6> + 8004dce: 3f01 subs r7, #1 + 8004dd0: e7e7 b.n 8004da2 <__mdiff+0xee> + 8004dd2: bf00 nop + 8004dd4: 08005738 .word 0x08005738 + 8004dd8: 08005749 .word 0x08005749 -08009864 <__sfputc_r>: - 8009864: 6893 ldr r3, [r2, #8] - 8009866: 3b01 subs r3, #1 - 8009868: 2b00 cmp r3, #0 - 800986a: b410 push {r4} - 800986c: 6093 str r3, [r2, #8] - 800986e: da08 bge.n 8009882 <__sfputc_r+0x1e> - 8009870: 6994 ldr r4, [r2, #24] - 8009872: 42a3 cmp r3, r4 - 8009874: db01 blt.n 800987a <__sfputc_r+0x16> - 8009876: 290a cmp r1, #10 - 8009878: d103 bne.n 8009882 <__sfputc_r+0x1e> - 800987a: f85d 4b04 ldr.w r4, [sp], #4 - 800987e: f000 b9df b.w 8009c40 <__swbuf_r> - 8009882: 6813 ldr r3, [r2, #0] - 8009884: 1c58 adds r0, r3, #1 - 8009886: 6010 str r0, [r2, #0] - 8009888: 7019 strb r1, [r3, #0] - 800988a: 4608 mov r0, r1 - 800988c: f85d 4b04 ldr.w r4, [sp], #4 - 8009890: 4770 bx lr +08004ddc <__d2b>: + 8004ddc: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} + 8004de0: 460f mov r7, r1 + 8004de2: 2101 movs r1, #1 + 8004de4: ec59 8b10 vmov r8, r9, d0 + 8004de8: 4616 mov r6, r2 + 8004dea: f7ff fcd5 bl 8004798 <_Balloc> + 8004dee: 4604 mov r4, r0 + 8004df0: b930 cbnz r0, 8004e00 <__d2b+0x24> + 8004df2: 4602 mov r2, r0 + 8004df4: 4b23 ldr r3, [pc, #140] @ (8004e84 <__d2b+0xa8>) + 8004df6: 4824 ldr r0, [pc, #144] @ (8004e88 <__d2b+0xac>) + 8004df8: f240 310f movw r1, #783 @ 0x30f + 8004dfc: f000 f910 bl 8005020 <__assert_func> + 8004e00: f3c9 550a ubfx r5, r9, #20, #11 + 8004e04: f3c9 0313 ubfx r3, r9, #0, #20 + 8004e08: b10d cbz r5, 8004e0e <__d2b+0x32> + 8004e0a: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 + 8004e0e: 9301 str r3, [sp, #4] + 8004e10: f1b8 0300 subs.w r3, r8, #0 + 8004e14: d023 beq.n 8004e5e <__d2b+0x82> + 8004e16: 4668 mov r0, sp + 8004e18: 9300 str r3, [sp, #0] + 8004e1a: f7ff fd84 bl 8004926 <__lo0bits> + 8004e1e: e9dd 1200 ldrd r1, r2, [sp] + 8004e22: b1d0 cbz r0, 8004e5a <__d2b+0x7e> + 8004e24: f1c0 0320 rsb r3, r0, #32 + 8004e28: fa02 f303 lsl.w r3, r2, r3 + 8004e2c: 430b orrs r3, r1 + 8004e2e: 40c2 lsrs r2, r0 + 8004e30: 6163 str r3, [r4, #20] + 8004e32: 9201 str r2, [sp, #4] + 8004e34: 9b01 ldr r3, [sp, #4] + 8004e36: 61a3 str r3, [r4, #24] + 8004e38: 2b00 cmp r3, #0 + 8004e3a: bf0c ite eq + 8004e3c: 2201 moveq r2, #1 + 8004e3e: 2202 movne r2, #2 + 8004e40: 6122 str r2, [r4, #16] + 8004e42: b1a5 cbz r5, 8004e6e <__d2b+0x92> + 8004e44: f2a5 4533 subw r5, r5, #1075 @ 0x433 + 8004e48: 4405 add r5, r0 + 8004e4a: 603d str r5, [r7, #0] + 8004e4c: f1c0 0035 rsb r0, r0, #53 @ 0x35 + 8004e50: 6030 str r0, [r6, #0] + 8004e52: 4620 mov r0, r4 + 8004e54: b003 add sp, #12 + 8004e56: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} + 8004e5a: 6161 str r1, [r4, #20] + 8004e5c: e7ea b.n 8004e34 <__d2b+0x58> + 8004e5e: a801 add r0, sp, #4 + 8004e60: f7ff fd61 bl 8004926 <__lo0bits> + 8004e64: 9b01 ldr r3, [sp, #4] + 8004e66: 6163 str r3, [r4, #20] + 8004e68: 3020 adds r0, #32 + 8004e6a: 2201 movs r2, #1 + 8004e6c: e7e8 b.n 8004e40 <__d2b+0x64> + 8004e6e: eb04 0382 add.w r3, r4, r2, lsl #2 + 8004e72: f2a0 4032 subw r0, r0, #1074 @ 0x432 + 8004e76: 6038 str r0, [r7, #0] + 8004e78: 6918 ldr r0, [r3, #16] + 8004e7a: f7ff fd35 bl 80048e8 <__hi0bits> + 8004e7e: ebc0 1042 rsb r0, r0, r2, lsl #5 + 8004e82: e7e5 b.n 8004e50 <__d2b+0x74> + 8004e84: 08005738 .word 0x08005738 + 8004e88: 08005749 .word 0x08005749 -08009892 <__sfputs_r>: - 8009892: b5f8 push {r3, r4, r5, r6, r7, lr} - 8009894: 4606 mov r6, r0 - 8009896: 460f mov r7, r1 - 8009898: 4614 mov r4, r2 - 800989a: 18d5 adds r5, r2, r3 - 800989c: 42ac cmp r4, r5 - 800989e: d101 bne.n 80098a4 <__sfputs_r+0x12> - 80098a0: 2000 movs r0, #0 - 80098a2: e007 b.n 80098b4 <__sfputs_r+0x22> - 80098a4: f814 1b01 ldrb.w r1, [r4], #1 - 80098a8: 463a mov r2, r7 - 80098aa: 4630 mov r0, r6 - 80098ac: f7ff ffda bl 8009864 <__sfputc_r> - 80098b0: 1c43 adds r3, r0, #1 - 80098b2: d1f3 bne.n 800989c <__sfputs_r+0xa> - 80098b4: bdf8 pop {r3, r4, r5, r6, r7, pc} +08004e8c <__sflush_r>: + 8004e8c: f9b1 200c ldrsh.w r2, [r1, #12] + 8004e90: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} + 8004e94: 0716 lsls r6, r2, #28 + 8004e96: 4605 mov r5, r0 + 8004e98: 460c mov r4, r1 + 8004e9a: d454 bmi.n 8004f46 <__sflush_r+0xba> + 8004e9c: 684b ldr r3, [r1, #4] + 8004e9e: 2b00 cmp r3, #0 + 8004ea0: dc02 bgt.n 8004ea8 <__sflush_r+0x1c> + 8004ea2: 6c0b ldr r3, [r1, #64] @ 0x40 + 8004ea4: 2b00 cmp r3, #0 + 8004ea6: dd48 ble.n 8004f3a <__sflush_r+0xae> + 8004ea8: 6ae6 ldr r6, [r4, #44] @ 0x2c + 8004eaa: 2e00 cmp r6, #0 + 8004eac: d045 beq.n 8004f3a <__sflush_r+0xae> + 8004eae: 2300 movs r3, #0 + 8004eb0: f412 5280 ands.w r2, r2, #4096 @ 0x1000 + 8004eb4: 682f ldr r7, [r5, #0] + 8004eb6: 6a21 ldr r1, [r4, #32] + 8004eb8: 602b str r3, [r5, #0] + 8004eba: d030 beq.n 8004f1e <__sflush_r+0x92> + 8004ebc: 6d62 ldr r2, [r4, #84] @ 0x54 + 8004ebe: 89a3 ldrh r3, [r4, #12] + 8004ec0: 0759 lsls r1, r3, #29 + 8004ec2: d505 bpl.n 8004ed0 <__sflush_r+0x44> + 8004ec4: 6863 ldr r3, [r4, #4] + 8004ec6: 1ad2 subs r2, r2, r3 + 8004ec8: 6b63 ldr r3, [r4, #52] @ 0x34 + 8004eca: b10b cbz r3, 8004ed0 <__sflush_r+0x44> + 8004ecc: 6c23 ldr r3, [r4, #64] @ 0x40 + 8004ece: 1ad2 subs r2, r2, r3 + 8004ed0: 2300 movs r3, #0 + 8004ed2: 6ae6 ldr r6, [r4, #44] @ 0x2c + 8004ed4: 6a21 ldr r1, [r4, #32] + 8004ed6: 4628 mov r0, r5 + 8004ed8: 47b0 blx r6 + 8004eda: 1c43 adds r3, r0, #1 + 8004edc: 89a3 ldrh r3, [r4, #12] + 8004ede: d106 bne.n 8004eee <__sflush_r+0x62> + 8004ee0: 6829 ldr r1, [r5, #0] + 8004ee2: 291d cmp r1, #29 + 8004ee4: d82b bhi.n 8004f3e <__sflush_r+0xb2> + 8004ee6: 4a2a ldr r2, [pc, #168] @ (8004f90 <__sflush_r+0x104>) + 8004ee8: 40ca lsrs r2, r1 + 8004eea: 07d6 lsls r6, r2, #31 + 8004eec: d527 bpl.n 8004f3e <__sflush_r+0xb2> + 8004eee: 2200 movs r2, #0 + 8004ef0: 6062 str r2, [r4, #4] + 8004ef2: 04d9 lsls r1, r3, #19 + 8004ef4: 6922 ldr r2, [r4, #16] + 8004ef6: 6022 str r2, [r4, #0] + 8004ef8: d504 bpl.n 8004f04 <__sflush_r+0x78> + 8004efa: 1c42 adds r2, r0, #1 + 8004efc: d101 bne.n 8004f02 <__sflush_r+0x76> + 8004efe: 682b ldr r3, [r5, #0] + 8004f00: b903 cbnz r3, 8004f04 <__sflush_r+0x78> + 8004f02: 6560 str r0, [r4, #84] @ 0x54 + 8004f04: 6b61 ldr r1, [r4, #52] @ 0x34 + 8004f06: 602f str r7, [r5, #0] + 8004f08: b1b9 cbz r1, 8004f3a <__sflush_r+0xae> + 8004f0a: f104 0344 add.w r3, r4, #68 @ 0x44 + 8004f0e: 4299 cmp r1, r3 + 8004f10: d002 beq.n 8004f18 <__sflush_r+0x8c> + 8004f12: 4628 mov r0, r5 + 8004f14: f7ff fb40 bl 8004598 <_free_r> + 8004f18: 2300 movs r3, #0 + 8004f1a: 6363 str r3, [r4, #52] @ 0x34 + 8004f1c: e00d b.n 8004f3a <__sflush_r+0xae> + 8004f1e: 2301 movs r3, #1 + 8004f20: 4628 mov r0, r5 + 8004f22: 47b0 blx r6 + 8004f24: 4602 mov r2, r0 + 8004f26: 1c50 adds r0, r2, #1 + 8004f28: d1c9 bne.n 8004ebe <__sflush_r+0x32> + 8004f2a: 682b ldr r3, [r5, #0] + 8004f2c: 2b00 cmp r3, #0 + 8004f2e: d0c6 beq.n 8004ebe <__sflush_r+0x32> + 8004f30: 2b1d cmp r3, #29 + 8004f32: d001 beq.n 8004f38 <__sflush_r+0xac> + 8004f34: 2b16 cmp r3, #22 + 8004f36: d11e bne.n 8004f76 <__sflush_r+0xea> + 8004f38: 602f str r7, [r5, #0] + 8004f3a: 2000 movs r0, #0 + 8004f3c: e022 b.n 8004f84 <__sflush_r+0xf8> + 8004f3e: f043 0340 orr.w r3, r3, #64 @ 0x40 + 8004f42: b21b sxth r3, r3 + 8004f44: e01b b.n 8004f7e <__sflush_r+0xf2> + 8004f46: 690f ldr r7, [r1, #16] + 8004f48: 2f00 cmp r7, #0 + 8004f4a: d0f6 beq.n 8004f3a <__sflush_r+0xae> + 8004f4c: 0793 lsls r3, r2, #30 + 8004f4e: 680e ldr r6, [r1, #0] + 8004f50: bf08 it eq + 8004f52: 694b ldreq r3, [r1, #20] + 8004f54: 600f str r7, [r1, #0] + 8004f56: bf18 it ne + 8004f58: 2300 movne r3, #0 + 8004f5a: eba6 0807 sub.w r8, r6, r7 + 8004f5e: 608b str r3, [r1, #8] + 8004f60: f1b8 0f00 cmp.w r8, #0 + 8004f64: dde9 ble.n 8004f3a <__sflush_r+0xae> + 8004f66: 6a21 ldr r1, [r4, #32] + 8004f68: 6aa6 ldr r6, [r4, #40] @ 0x28 + 8004f6a: 4643 mov r3, r8 + 8004f6c: 463a mov r2, r7 + 8004f6e: 4628 mov r0, r5 + 8004f70: 47b0 blx r6 + 8004f72: 2800 cmp r0, #0 + 8004f74: dc08 bgt.n 8004f88 <__sflush_r+0xfc> + 8004f76: f9b4 300c ldrsh.w r3, [r4, #12] + 8004f7a: f043 0340 orr.w r3, r3, #64 @ 0x40 + 8004f7e: 81a3 strh r3, [r4, #12] + 8004f80: f04f 30ff mov.w r0, #4294967295 + 8004f84: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} + 8004f88: 4407 add r7, r0 + 8004f8a: eba8 0800 sub.w r8, r8, r0 + 8004f8e: e7e7 b.n 8004f60 <__sflush_r+0xd4> + 8004f90: 20400001 .word 0x20400001 + +08004f94 <_fflush_r>: + 8004f94: b538 push {r3, r4, r5, lr} + 8004f96: 690b ldr r3, [r1, #16] + 8004f98: 4605 mov r5, r0 + 8004f9a: 460c mov r4, r1 + 8004f9c: b913 cbnz r3, 8004fa4 <_fflush_r+0x10> + 8004f9e: 2500 movs r5, #0 + 8004fa0: 4628 mov r0, r5 + 8004fa2: bd38 pop {r3, r4, r5, pc} + 8004fa4: b118 cbz r0, 8004fae <_fflush_r+0x1a> + 8004fa6: 6a03 ldr r3, [r0, #32] + 8004fa8: b90b cbnz r3, 8004fae <_fflush_r+0x1a> + 8004faa: f7fe fba1 bl 80036f0 <__sinit> + 8004fae: f9b4 300c ldrsh.w r3, [r4, #12] + 8004fb2: 2b00 cmp r3, #0 + 8004fb4: d0f3 beq.n 8004f9e <_fflush_r+0xa> + 8004fb6: 6e62 ldr r2, [r4, #100] @ 0x64 + 8004fb8: 07d0 lsls r0, r2, #31 + 8004fba: d404 bmi.n 8004fc6 <_fflush_r+0x32> + 8004fbc: 0599 lsls r1, r3, #22 + 8004fbe: d402 bmi.n 8004fc6 <_fflush_r+0x32> + 8004fc0: 6da0 ldr r0, [r4, #88] @ 0x58 + 8004fc2: f7fe fc8c bl 80038de <__retarget_lock_acquire_recursive> + 8004fc6: 4628 mov r0, r5 + 8004fc8: 4621 mov r1, r4 + 8004fca: f7ff ff5f bl 8004e8c <__sflush_r> + 8004fce: 6e63 ldr r3, [r4, #100] @ 0x64 + 8004fd0: 07da lsls r2, r3, #31 + 8004fd2: 4605 mov r5, r0 + 8004fd4: d4e4 bmi.n 8004fa0 <_fflush_r+0xc> + 8004fd6: 89a3 ldrh r3, [r4, #12] + 8004fd8: 059b lsls r3, r3, #22 + 8004fda: d4e1 bmi.n 8004fa0 <_fflush_r+0xc> + 8004fdc: 6da0 ldr r0, [r4, #88] @ 0x58 + 8004fde: f7fe fc7f bl 80038e0 <__retarget_lock_release_recursive> + 8004fe2: e7dd b.n 8004fa0 <_fflush_r+0xc> + +08004fe4 <_sbrk_r>: + 8004fe4: b538 push {r3, r4, r5, lr} + 8004fe6: 4d06 ldr r5, [pc, #24] @ (8005000 <_sbrk_r+0x1c>) + 8004fe8: 2300 movs r3, #0 + 8004fea: 4604 mov r4, r0 + 8004fec: 4608 mov r0, r1 + 8004fee: 602b str r3, [r5, #0] + 8004ff0: f7fc f986 bl 8001300 <_sbrk> + 8004ff4: 1c43 adds r3, r0, #1 + 8004ff6: d102 bne.n 8004ffe <_sbrk_r+0x1a> + 8004ff8: 682b ldr r3, [r5, #0] + 8004ffa: b103 cbz r3, 8004ffe <_sbrk_r+0x1a> + 8004ffc: 6023 str r3, [r4, #0] + 8004ffe: bd38 pop {r3, r4, r5, pc} + 8005000: 2000079c .word 0x2000079c + +08005004 : + 8005004: 440a add r2, r1 + 8005006: 4291 cmp r1, r2 + 8005008: f100 33ff add.w r3, r0, #4294967295 + 800500c: d100 bne.n 8005010 + 800500e: 4770 bx lr + 8005010: b510 push {r4, lr} + 8005012: f811 4b01 ldrb.w r4, [r1], #1 + 8005016: f803 4f01 strb.w r4, [r3, #1]! + 800501a: 4291 cmp r1, r2 + 800501c: d1f9 bne.n 8005012 + 800501e: bd10 pop {r4, pc} + +08005020 <__assert_func>: + 8005020: b51f push {r0, r1, r2, r3, r4, lr} + 8005022: 4614 mov r4, r2 + 8005024: 461a mov r2, r3 + 8005026: 4b09 ldr r3, [pc, #36] @ (800504c <__assert_func+0x2c>) + 8005028: 681b ldr r3, [r3, #0] + 800502a: 4605 mov r5, r0 + 800502c: 68d8 ldr r0, [r3, #12] + 800502e: b14c cbz r4, 8005044 <__assert_func+0x24> + 8005030: 4b07 ldr r3, [pc, #28] @ (8005050 <__assert_func+0x30>) + 8005032: 9100 str r1, [sp, #0] + 8005034: e9cd 3401 strd r3, r4, [sp, #4] + 8005038: 4906 ldr r1, [pc, #24] @ (8005054 <__assert_func+0x34>) + 800503a: 462b mov r3, r5 + 800503c: f000 f842 bl 80050c4 + 8005040: f000 f852 bl 80050e8 + 8005044: 4b04 ldr r3, [pc, #16] @ (8005058 <__assert_func+0x38>) + 8005046: 461c mov r4, r3 + 8005048: e7f3 b.n 8005032 <__assert_func+0x12> + 800504a: bf00 nop + 800504c: 20000018 .word 0x20000018 + 8005050: 080057ac .word 0x080057ac + 8005054: 080057b9 .word 0x080057b9 + 8005058: 080057e7 .word 0x080057e7 + +0800505c <_calloc_r>: + 800505c: b570 push {r4, r5, r6, lr} + 800505e: fba1 5402 umull r5, r4, r1, r2 + 8005062: b934 cbnz r4, 8005072 <_calloc_r+0x16> + 8005064: 4629 mov r1, r5 + 8005066: f7ff fb0b bl 8004680 <_malloc_r> + 800506a: 4606 mov r6, r0 + 800506c: b928 cbnz r0, 800507a <_calloc_r+0x1e> + 800506e: 4630 mov r0, r6 + 8005070: bd70 pop {r4, r5, r6, pc} + 8005072: 220c movs r2, #12 + 8005074: 6002 str r2, [r0, #0] + 8005076: 2600 movs r6, #0 + 8005078: e7f9 b.n 800506e <_calloc_r+0x12> + 800507a: 462a mov r2, r5 + 800507c: 4621 mov r1, r4 + 800507e: f7fe fbb0 bl 80037e2 + 8005082: e7f4 b.n 800506e <_calloc_r+0x12> + +08005084 <__ascii_mbtowc>: + 8005084: b082 sub sp, #8 + 8005086: b901 cbnz r1, 800508a <__ascii_mbtowc+0x6> + 8005088: a901 add r1, sp, #4 + 800508a: b142 cbz r2, 800509e <__ascii_mbtowc+0x1a> + 800508c: b14b cbz r3, 80050a2 <__ascii_mbtowc+0x1e> + 800508e: 7813 ldrb r3, [r2, #0] + 8005090: 600b str r3, [r1, #0] + 8005092: 7812 ldrb r2, [r2, #0] + 8005094: 1e10 subs r0, r2, #0 + 8005096: bf18 it ne + 8005098: 2001 movne r0, #1 + 800509a: b002 add sp, #8 + 800509c: 4770 bx lr + 800509e: 4610 mov r0, r2 + 80050a0: e7fb b.n 800509a <__ascii_mbtowc+0x16> + 80050a2: f06f 0001 mvn.w r0, #1 + 80050a6: e7f8 b.n 800509a <__ascii_mbtowc+0x16> + +080050a8 <__ascii_wctomb>: + 80050a8: 4603 mov r3, r0 + 80050aa: 4608 mov r0, r1 + 80050ac: b141 cbz r1, 80050c0 <__ascii_wctomb+0x18> + 80050ae: 2aff cmp r2, #255 @ 0xff + 80050b0: d904 bls.n 80050bc <__ascii_wctomb+0x14> + 80050b2: 228a movs r2, #138 @ 0x8a + 80050b4: 601a str r2, [r3, #0] + 80050b6: f04f 30ff mov.w r0, #4294967295 + 80050ba: 4770 bx lr + 80050bc: 700a strb r2, [r1, #0] + 80050be: 2001 movs r0, #1 + 80050c0: 4770 bx lr ... -080098b8 <_vfiprintf_r>: - 80098b8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80098bc: 460d mov r5, r1 - 80098be: b09d sub sp, #116 @ 0x74 - 80098c0: 4614 mov r4, r2 - 80098c2: 4698 mov r8, r3 - 80098c4: 4606 mov r6, r0 - 80098c6: b118 cbz r0, 80098d0 <_vfiprintf_r+0x18> - 80098c8: 6a03 ldr r3, [r0, #32] - 80098ca: b90b cbnz r3, 80098d0 <_vfiprintf_r+0x18> - 80098cc: f7fe fa5e bl 8007d8c <__sinit> - 80098d0: 6e6b ldr r3, [r5, #100] @ 0x64 - 80098d2: 07d9 lsls r1, r3, #31 - 80098d4: d405 bmi.n 80098e2 <_vfiprintf_r+0x2a> - 80098d6: 89ab ldrh r3, [r5, #12] - 80098d8: 059a lsls r2, r3, #22 - 80098da: d402 bmi.n 80098e2 <_vfiprintf_r+0x2a> - 80098dc: 6da8 ldr r0, [r5, #88] @ 0x58 - 80098de: f7fe fb94 bl 800800a <__retarget_lock_acquire_recursive> - 80098e2: 89ab ldrh r3, [r5, #12] - 80098e4: 071b lsls r3, r3, #28 - 80098e6: d501 bpl.n 80098ec <_vfiprintf_r+0x34> - 80098e8: 692b ldr r3, [r5, #16] - 80098ea: b99b cbnz r3, 8009914 <_vfiprintf_r+0x5c> - 80098ec: 4629 mov r1, r5 - 80098ee: 4630 mov r0, r6 - 80098f0: f000 f9e4 bl 8009cbc <__swsetup_r> - 80098f4: b170 cbz r0, 8009914 <_vfiprintf_r+0x5c> - 80098f6: 6e6b ldr r3, [r5, #100] @ 0x64 - 80098f8: 07dc lsls r4, r3, #31 - 80098fa: d504 bpl.n 8009906 <_vfiprintf_r+0x4e> - 80098fc: f04f 30ff mov.w r0, #4294967295 - 8009900: b01d add sp, #116 @ 0x74 - 8009902: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8009906: 89ab ldrh r3, [r5, #12] - 8009908: 0598 lsls r0, r3, #22 - 800990a: d4f7 bmi.n 80098fc <_vfiprintf_r+0x44> - 800990c: 6da8 ldr r0, [r5, #88] @ 0x58 - 800990e: f7fe fb7d bl 800800c <__retarget_lock_release_recursive> - 8009912: e7f3 b.n 80098fc <_vfiprintf_r+0x44> - 8009914: 2300 movs r3, #0 - 8009916: 9309 str r3, [sp, #36] @ 0x24 - 8009918: 2320 movs r3, #32 - 800991a: f88d 3029 strb.w r3, [sp, #41] @ 0x29 - 800991e: f8cd 800c str.w r8, [sp, #12] - 8009922: 2330 movs r3, #48 @ 0x30 - 8009924: f8df 81ac ldr.w r8, [pc, #428] @ 8009ad4 <_vfiprintf_r+0x21c> - 8009928: f88d 302a strb.w r3, [sp, #42] @ 0x2a - 800992c: f04f 0901 mov.w r9, #1 - 8009930: 4623 mov r3, r4 - 8009932: 469a mov sl, r3 - 8009934: f813 2b01 ldrb.w r2, [r3], #1 - 8009938: b10a cbz r2, 800993e <_vfiprintf_r+0x86> - 800993a: 2a25 cmp r2, #37 @ 0x25 - 800993c: d1f9 bne.n 8009932 <_vfiprintf_r+0x7a> - 800993e: ebba 0b04 subs.w fp, sl, r4 - 8009942: d00b beq.n 800995c <_vfiprintf_r+0xa4> - 8009944: 465b mov r3, fp - 8009946: 4622 mov r2, r4 - 8009948: 4629 mov r1, r5 - 800994a: 4630 mov r0, r6 - 800994c: f7ff ffa1 bl 8009892 <__sfputs_r> - 8009950: 3001 adds r0, #1 - 8009952: f000 80a7 beq.w 8009aa4 <_vfiprintf_r+0x1ec> - 8009956: 9a09 ldr r2, [sp, #36] @ 0x24 - 8009958: 445a add r2, fp - 800995a: 9209 str r2, [sp, #36] @ 0x24 - 800995c: f89a 3000 ldrb.w r3, [sl] - 8009960: 2b00 cmp r3, #0 - 8009962: f000 809f beq.w 8009aa4 <_vfiprintf_r+0x1ec> - 8009966: 2300 movs r3, #0 - 8009968: f04f 32ff mov.w r2, #4294967295 - 800996c: e9cd 2305 strd r2, r3, [sp, #20] - 8009970: f10a 0a01 add.w sl, sl, #1 - 8009974: 9304 str r3, [sp, #16] - 8009976: 9307 str r3, [sp, #28] - 8009978: f88d 3053 strb.w r3, [sp, #83] @ 0x53 - 800997c: 931a str r3, [sp, #104] @ 0x68 - 800997e: 4654 mov r4, sl - 8009980: 2205 movs r2, #5 - 8009982: f814 1b01 ldrb.w r1, [r4], #1 - 8009986: 4853 ldr r0, [pc, #332] @ (8009ad4 <_vfiprintf_r+0x21c>) - 8009988: f7f6 fc2a bl 80001e0 - 800998c: 9a04 ldr r2, [sp, #16] - 800998e: b9d8 cbnz r0, 80099c8 <_vfiprintf_r+0x110> - 8009990: 06d1 lsls r1, r2, #27 - 8009992: bf44 itt mi - 8009994: 2320 movmi r3, #32 - 8009996: f88d 3053 strbmi.w r3, [sp, #83] @ 0x53 - 800999a: 0713 lsls r3, r2, #28 - 800999c: bf44 itt mi - 800999e: 232b movmi r3, #43 @ 0x2b - 80099a0: f88d 3053 strbmi.w r3, [sp, #83] @ 0x53 - 80099a4: f89a 3000 ldrb.w r3, [sl] - 80099a8: 2b2a cmp r3, #42 @ 0x2a - 80099aa: d015 beq.n 80099d8 <_vfiprintf_r+0x120> - 80099ac: 9a07 ldr r2, [sp, #28] - 80099ae: 4654 mov r4, sl - 80099b0: 2000 movs r0, #0 - 80099b2: f04f 0c0a mov.w ip, #10 - 80099b6: 4621 mov r1, r4 - 80099b8: f811 3b01 ldrb.w r3, [r1], #1 - 80099bc: 3b30 subs r3, #48 @ 0x30 - 80099be: 2b09 cmp r3, #9 - 80099c0: d94b bls.n 8009a5a <_vfiprintf_r+0x1a2> - 80099c2: b1b0 cbz r0, 80099f2 <_vfiprintf_r+0x13a> - 80099c4: 9207 str r2, [sp, #28] - 80099c6: e014 b.n 80099f2 <_vfiprintf_r+0x13a> - 80099c8: eba0 0308 sub.w r3, r0, r8 - 80099cc: fa09 f303 lsl.w r3, r9, r3 - 80099d0: 4313 orrs r3, r2 - 80099d2: 9304 str r3, [sp, #16] - 80099d4: 46a2 mov sl, r4 - 80099d6: e7d2 b.n 800997e <_vfiprintf_r+0xc6> - 80099d8: 9b03 ldr r3, [sp, #12] - 80099da: 1d19 adds r1, r3, #4 - 80099dc: 681b ldr r3, [r3, #0] - 80099de: 9103 str r1, [sp, #12] - 80099e0: 2b00 cmp r3, #0 - 80099e2: bfbb ittet lt - 80099e4: 425b neglt r3, r3 - 80099e6: f042 0202 orrlt.w r2, r2, #2 - 80099ea: 9307 strge r3, [sp, #28] - 80099ec: 9307 strlt r3, [sp, #28] - 80099ee: bfb8 it lt - 80099f0: 9204 strlt r2, [sp, #16] - 80099f2: 7823 ldrb r3, [r4, #0] - 80099f4: 2b2e cmp r3, #46 @ 0x2e - 80099f6: d10a bne.n 8009a0e <_vfiprintf_r+0x156> - 80099f8: 7863 ldrb r3, [r4, #1] - 80099fa: 2b2a cmp r3, #42 @ 0x2a - 80099fc: d132 bne.n 8009a64 <_vfiprintf_r+0x1ac> - 80099fe: 9b03 ldr r3, [sp, #12] - 8009a00: 1d1a adds r2, r3, #4 - 8009a02: 681b ldr r3, [r3, #0] - 8009a04: 9203 str r2, [sp, #12] - 8009a06: ea43 73e3 orr.w r3, r3, r3, asr #31 - 8009a0a: 3402 adds r4, #2 - 8009a0c: 9305 str r3, [sp, #20] - 8009a0e: f8df a0d4 ldr.w sl, [pc, #212] @ 8009ae4 <_vfiprintf_r+0x22c> - 8009a12: 7821 ldrb r1, [r4, #0] - 8009a14: 2203 movs r2, #3 - 8009a16: 4650 mov r0, sl - 8009a18: f7f6 fbe2 bl 80001e0 - 8009a1c: b138 cbz r0, 8009a2e <_vfiprintf_r+0x176> - 8009a1e: 9b04 ldr r3, [sp, #16] - 8009a20: eba0 000a sub.w r0, r0, sl - 8009a24: 2240 movs r2, #64 @ 0x40 - 8009a26: 4082 lsls r2, r0 - 8009a28: 4313 orrs r3, r2 - 8009a2a: 3401 adds r4, #1 - 8009a2c: 9304 str r3, [sp, #16] - 8009a2e: f814 1b01 ldrb.w r1, [r4], #1 - 8009a32: 4829 ldr r0, [pc, #164] @ (8009ad8 <_vfiprintf_r+0x220>) - 8009a34: f88d 1028 strb.w r1, [sp, #40] @ 0x28 - 8009a38: 2206 movs r2, #6 - 8009a3a: f7f6 fbd1 bl 80001e0 - 8009a3e: 2800 cmp r0, #0 - 8009a40: d03f beq.n 8009ac2 <_vfiprintf_r+0x20a> - 8009a42: 4b26 ldr r3, [pc, #152] @ (8009adc <_vfiprintf_r+0x224>) - 8009a44: bb1b cbnz r3, 8009a8e <_vfiprintf_r+0x1d6> - 8009a46: 9b03 ldr r3, [sp, #12] - 8009a48: 3307 adds r3, #7 - 8009a4a: f023 0307 bic.w r3, r3, #7 - 8009a4e: 3308 adds r3, #8 - 8009a50: 9303 str r3, [sp, #12] - 8009a52: 9b09 ldr r3, [sp, #36] @ 0x24 - 8009a54: 443b add r3, r7 - 8009a56: 9309 str r3, [sp, #36] @ 0x24 - 8009a58: e76a b.n 8009930 <_vfiprintf_r+0x78> - 8009a5a: fb0c 3202 mla r2, ip, r2, r3 - 8009a5e: 460c mov r4, r1 - 8009a60: 2001 movs r0, #1 - 8009a62: e7a8 b.n 80099b6 <_vfiprintf_r+0xfe> - 8009a64: 2300 movs r3, #0 - 8009a66: 3401 adds r4, #1 - 8009a68: 9305 str r3, [sp, #20] - 8009a6a: 4619 mov r1, r3 - 8009a6c: f04f 0c0a mov.w ip, #10 - 8009a70: 4620 mov r0, r4 - 8009a72: f810 2b01 ldrb.w r2, [r0], #1 - 8009a76: 3a30 subs r2, #48 @ 0x30 - 8009a78: 2a09 cmp r2, #9 - 8009a7a: d903 bls.n 8009a84 <_vfiprintf_r+0x1cc> - 8009a7c: 2b00 cmp r3, #0 - 8009a7e: d0c6 beq.n 8009a0e <_vfiprintf_r+0x156> - 8009a80: 9105 str r1, [sp, #20] - 8009a82: e7c4 b.n 8009a0e <_vfiprintf_r+0x156> - 8009a84: fb0c 2101 mla r1, ip, r1, r2 - 8009a88: 4604 mov r4, r0 - 8009a8a: 2301 movs r3, #1 - 8009a8c: e7f0 b.n 8009a70 <_vfiprintf_r+0x1b8> - 8009a8e: ab03 add r3, sp, #12 - 8009a90: 9300 str r3, [sp, #0] - 8009a92: 462a mov r2, r5 - 8009a94: 4b12 ldr r3, [pc, #72] @ (8009ae0 <_vfiprintf_r+0x228>) - 8009a96: a904 add r1, sp, #16 - 8009a98: 4630 mov r0, r6 - 8009a9a: f7fd fd35 bl 8007508 <_printf_float> - 8009a9e: 4607 mov r7, r0 - 8009aa0: 1c78 adds r0, r7, #1 - 8009aa2: d1d6 bne.n 8009a52 <_vfiprintf_r+0x19a> - 8009aa4: 6e6b ldr r3, [r5, #100] @ 0x64 - 8009aa6: 07d9 lsls r1, r3, #31 - 8009aa8: d405 bmi.n 8009ab6 <_vfiprintf_r+0x1fe> - 8009aaa: 89ab ldrh r3, [r5, #12] - 8009aac: 059a lsls r2, r3, #22 - 8009aae: d402 bmi.n 8009ab6 <_vfiprintf_r+0x1fe> - 8009ab0: 6da8 ldr r0, [r5, #88] @ 0x58 - 8009ab2: f7fe faab bl 800800c <__retarget_lock_release_recursive> - 8009ab6: 89ab ldrh r3, [r5, #12] - 8009ab8: 065b lsls r3, r3, #25 - 8009aba: f53f af1f bmi.w 80098fc <_vfiprintf_r+0x44> - 8009abe: 9809 ldr r0, [sp, #36] @ 0x24 - 8009ac0: e71e b.n 8009900 <_vfiprintf_r+0x48> - 8009ac2: ab03 add r3, sp, #12 - 8009ac4: 9300 str r3, [sp, #0] - 8009ac6: 462a mov r2, r5 - 8009ac8: 4b05 ldr r3, [pc, #20] @ (8009ae0 <_vfiprintf_r+0x228>) - 8009aca: a904 add r1, sp, #16 - 8009acc: 4630 mov r0, r6 - 8009ace: f7fd ffb3 bl 8007a38 <_printf_i> - 8009ad2: e7e4 b.n 8009a9e <_vfiprintf_r+0x1e6> - 8009ad4: 0800ba9e .word 0x0800ba9e - 8009ad8: 0800baa8 .word 0x0800baa8 - 8009adc: 08007509 .word 0x08007509 - 8009ae0: 08009893 .word 0x08009893 - 8009ae4: 0800baa4 .word 0x0800baa4 +080050c4 : + 80050c4: b40e push {r1, r2, r3} + 80050c6: b503 push {r0, r1, lr} + 80050c8: 4601 mov r1, r0 + 80050ca: ab03 add r3, sp, #12 + 80050cc: 4805 ldr r0, [pc, #20] @ (80050e4 ) + 80050ce: f853 2b04 ldr.w r2, [r3], #4 + 80050d2: 6800 ldr r0, [r0, #0] + 80050d4: 9301 str r3, [sp, #4] + 80050d6: f000 f837 bl 8005148 <_vfiprintf_r> + 80050da: b002 add sp, #8 + 80050dc: f85d eb04 ldr.w lr, [sp], #4 + 80050e0: b003 add sp, #12 + 80050e2: 4770 bx lr + 80050e4: 20000018 .word 0x20000018 -08009ae8 <__sflush_r>: - 8009ae8: f9b1 200c ldrsh.w r2, [r1, #12] - 8009aec: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8009af0: 0716 lsls r6, r2, #28 - 8009af2: 4605 mov r5, r0 - 8009af4: 460c mov r4, r1 - 8009af6: d454 bmi.n 8009ba2 <__sflush_r+0xba> - 8009af8: 684b ldr r3, [r1, #4] - 8009afa: 2b00 cmp r3, #0 - 8009afc: dc02 bgt.n 8009b04 <__sflush_r+0x1c> - 8009afe: 6c0b ldr r3, [r1, #64] @ 0x40 - 8009b00: 2b00 cmp r3, #0 - 8009b02: dd48 ble.n 8009b96 <__sflush_r+0xae> - 8009b04: 6ae6 ldr r6, [r4, #44] @ 0x2c - 8009b06: 2e00 cmp r6, #0 - 8009b08: d045 beq.n 8009b96 <__sflush_r+0xae> - 8009b0a: 2300 movs r3, #0 - 8009b0c: f412 5280 ands.w r2, r2, #4096 @ 0x1000 - 8009b10: 682f ldr r7, [r5, #0] - 8009b12: 6a21 ldr r1, [r4, #32] - 8009b14: 602b str r3, [r5, #0] - 8009b16: d030 beq.n 8009b7a <__sflush_r+0x92> - 8009b18: 6d62 ldr r2, [r4, #84] @ 0x54 - 8009b1a: 89a3 ldrh r3, [r4, #12] - 8009b1c: 0759 lsls r1, r3, #29 - 8009b1e: d505 bpl.n 8009b2c <__sflush_r+0x44> - 8009b20: 6863 ldr r3, [r4, #4] - 8009b22: 1ad2 subs r2, r2, r3 - 8009b24: 6b63 ldr r3, [r4, #52] @ 0x34 - 8009b26: b10b cbz r3, 8009b2c <__sflush_r+0x44> - 8009b28: 6c23 ldr r3, [r4, #64] @ 0x40 - 8009b2a: 1ad2 subs r2, r2, r3 - 8009b2c: 2300 movs r3, #0 - 8009b2e: 6ae6 ldr r6, [r4, #44] @ 0x2c - 8009b30: 6a21 ldr r1, [r4, #32] - 8009b32: 4628 mov r0, r5 - 8009b34: 47b0 blx r6 - 8009b36: 1c43 adds r3, r0, #1 - 8009b38: 89a3 ldrh r3, [r4, #12] - 8009b3a: d106 bne.n 8009b4a <__sflush_r+0x62> - 8009b3c: 6829 ldr r1, [r5, #0] - 8009b3e: 291d cmp r1, #29 - 8009b40: d82b bhi.n 8009b9a <__sflush_r+0xb2> - 8009b42: 4a2a ldr r2, [pc, #168] @ (8009bec <__sflush_r+0x104>) - 8009b44: 40ca lsrs r2, r1 - 8009b46: 07d6 lsls r6, r2, #31 - 8009b48: d527 bpl.n 8009b9a <__sflush_r+0xb2> - 8009b4a: 2200 movs r2, #0 - 8009b4c: 6062 str r2, [r4, #4] - 8009b4e: 04d9 lsls r1, r3, #19 - 8009b50: 6922 ldr r2, [r4, #16] - 8009b52: 6022 str r2, [r4, #0] - 8009b54: d504 bpl.n 8009b60 <__sflush_r+0x78> - 8009b56: 1c42 adds r2, r0, #1 - 8009b58: d101 bne.n 8009b5e <__sflush_r+0x76> - 8009b5a: 682b ldr r3, [r5, #0] - 8009b5c: b903 cbnz r3, 8009b60 <__sflush_r+0x78> - 8009b5e: 6560 str r0, [r4, #84] @ 0x54 - 8009b60: 6b61 ldr r1, [r4, #52] @ 0x34 - 8009b62: 602f str r7, [r5, #0] - 8009b64: b1b9 cbz r1, 8009b96 <__sflush_r+0xae> - 8009b66: f104 0344 add.w r3, r4, #68 @ 0x44 - 8009b6a: 4299 cmp r1, r3 - 8009b6c: d002 beq.n 8009b74 <__sflush_r+0x8c> - 8009b6e: 4628 mov r0, r5 - 8009b70: f7ff f8a6 bl 8008cc0 <_free_r> - 8009b74: 2300 movs r3, #0 - 8009b76: 6363 str r3, [r4, #52] @ 0x34 - 8009b78: e00d b.n 8009b96 <__sflush_r+0xae> - 8009b7a: 2301 movs r3, #1 - 8009b7c: 4628 mov r0, r5 - 8009b7e: 47b0 blx r6 - 8009b80: 4602 mov r2, r0 - 8009b82: 1c50 adds r0, r2, #1 - 8009b84: d1c9 bne.n 8009b1a <__sflush_r+0x32> - 8009b86: 682b ldr r3, [r5, #0] - 8009b88: 2b00 cmp r3, #0 - 8009b8a: d0c6 beq.n 8009b1a <__sflush_r+0x32> - 8009b8c: 2b1d cmp r3, #29 - 8009b8e: d001 beq.n 8009b94 <__sflush_r+0xac> - 8009b90: 2b16 cmp r3, #22 - 8009b92: d11e bne.n 8009bd2 <__sflush_r+0xea> - 8009b94: 602f str r7, [r5, #0] - 8009b96: 2000 movs r0, #0 - 8009b98: e022 b.n 8009be0 <__sflush_r+0xf8> - 8009b9a: f043 0340 orr.w r3, r3, #64 @ 0x40 - 8009b9e: b21b sxth r3, r3 - 8009ba0: e01b b.n 8009bda <__sflush_r+0xf2> - 8009ba2: 690f ldr r7, [r1, #16] - 8009ba4: 2f00 cmp r7, #0 - 8009ba6: d0f6 beq.n 8009b96 <__sflush_r+0xae> - 8009ba8: 0793 lsls r3, r2, #30 - 8009baa: 680e ldr r6, [r1, #0] - 8009bac: bf08 it eq - 8009bae: 694b ldreq r3, [r1, #20] - 8009bb0: 600f str r7, [r1, #0] - 8009bb2: bf18 it ne - 8009bb4: 2300 movne r3, #0 - 8009bb6: eba6 0807 sub.w r8, r6, r7 - 8009bba: 608b str r3, [r1, #8] - 8009bbc: f1b8 0f00 cmp.w r8, #0 - 8009bc0: dde9 ble.n 8009b96 <__sflush_r+0xae> - 8009bc2: 6a21 ldr r1, [r4, #32] - 8009bc4: 6aa6 ldr r6, [r4, #40] @ 0x28 - 8009bc6: 4643 mov r3, r8 - 8009bc8: 463a mov r2, r7 - 8009bca: 4628 mov r0, r5 - 8009bcc: 47b0 blx r6 - 8009bce: 2800 cmp r0, #0 - 8009bd0: dc08 bgt.n 8009be4 <__sflush_r+0xfc> - 8009bd2: f9b4 300c ldrsh.w r3, [r4, #12] - 8009bd6: f043 0340 orr.w r3, r3, #64 @ 0x40 - 8009bda: 81a3 strh r3, [r4, #12] - 8009bdc: f04f 30ff mov.w r0, #4294967295 - 8009be0: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8009be4: 4407 add r7, r0 - 8009be6: eba8 0800 sub.w r8, r8, r0 - 8009bea: e7e7 b.n 8009bbc <__sflush_r+0xd4> - 8009bec: 20400001 .word 0x20400001 +080050e8 : + 80050e8: b508 push {r3, lr} + 80050ea: 2006 movs r0, #6 + 80050ec: f000 fa00 bl 80054f0 + 80050f0: 2001 movs r0, #1 + 80050f2: f7fc f88c bl 800120e <_exit> -08009bf0 <_fflush_r>: - 8009bf0: b538 push {r3, r4, r5, lr} - 8009bf2: 690b ldr r3, [r1, #16] - 8009bf4: 4605 mov r5, r0 - 8009bf6: 460c mov r4, r1 - 8009bf8: b913 cbnz r3, 8009c00 <_fflush_r+0x10> - 8009bfa: 2500 movs r5, #0 - 8009bfc: 4628 mov r0, r5 - 8009bfe: bd38 pop {r3, r4, r5, pc} - 8009c00: b118 cbz r0, 8009c0a <_fflush_r+0x1a> - 8009c02: 6a03 ldr r3, [r0, #32] - 8009c04: b90b cbnz r3, 8009c0a <_fflush_r+0x1a> - 8009c06: f7fe f8c1 bl 8007d8c <__sinit> - 8009c0a: f9b4 300c ldrsh.w r3, [r4, #12] - 8009c0e: 2b00 cmp r3, #0 - 8009c10: d0f3 beq.n 8009bfa <_fflush_r+0xa> - 8009c12: 6e62 ldr r2, [r4, #100] @ 0x64 - 8009c14: 07d0 lsls r0, r2, #31 - 8009c16: d404 bmi.n 8009c22 <_fflush_r+0x32> - 8009c18: 0599 lsls r1, r3, #22 - 8009c1a: d402 bmi.n 8009c22 <_fflush_r+0x32> - 8009c1c: 6da0 ldr r0, [r4, #88] @ 0x58 - 8009c1e: f7fe f9f4 bl 800800a <__retarget_lock_acquire_recursive> - 8009c22: 4628 mov r0, r5 - 8009c24: 4621 mov r1, r4 - 8009c26: f7ff ff5f bl 8009ae8 <__sflush_r> - 8009c2a: 6e63 ldr r3, [r4, #100] @ 0x64 - 8009c2c: 07da lsls r2, r3, #31 - 8009c2e: 4605 mov r5, r0 - 8009c30: d4e4 bmi.n 8009bfc <_fflush_r+0xc> - 8009c32: 89a3 ldrh r3, [r4, #12] - 8009c34: 059b lsls r3, r3, #22 - 8009c36: d4e1 bmi.n 8009bfc <_fflush_r+0xc> - 8009c38: 6da0 ldr r0, [r4, #88] @ 0x58 - 8009c3a: f7fe f9e7 bl 800800c <__retarget_lock_release_recursive> - 8009c3e: e7dd b.n 8009bfc <_fflush_r+0xc> +080050f6 <__sfputc_r>: + 80050f6: 6893 ldr r3, [r2, #8] + 80050f8: 3b01 subs r3, #1 + 80050fa: 2b00 cmp r3, #0 + 80050fc: b410 push {r4} + 80050fe: 6093 str r3, [r2, #8] + 8005100: da08 bge.n 8005114 <__sfputc_r+0x1e> + 8005102: 6994 ldr r4, [r2, #24] + 8005104: 42a3 cmp r3, r4 + 8005106: db01 blt.n 800510c <__sfputc_r+0x16> + 8005108: 290a cmp r1, #10 + 800510a: d103 bne.n 8005114 <__sfputc_r+0x1e> + 800510c: f85d 4b04 ldr.w r4, [sp], #4 + 8005110: f000 b932 b.w 8005378 <__swbuf_r> + 8005114: 6813 ldr r3, [r2, #0] + 8005116: 1c58 adds r0, r3, #1 + 8005118: 6010 str r0, [r2, #0] + 800511a: 7019 strb r1, [r3, #0] + 800511c: 4608 mov r0, r1 + 800511e: f85d 4b04 ldr.w r4, [sp], #4 + 8005122: 4770 bx lr -08009c40 <__swbuf_r>: - 8009c40: b5f8 push {r3, r4, r5, r6, r7, lr} - 8009c42: 460e mov r6, r1 - 8009c44: 4614 mov r4, r2 - 8009c46: 4605 mov r5, r0 - 8009c48: b118 cbz r0, 8009c52 <__swbuf_r+0x12> - 8009c4a: 6a03 ldr r3, [r0, #32] - 8009c4c: b90b cbnz r3, 8009c52 <__swbuf_r+0x12> - 8009c4e: f7fe f89d bl 8007d8c <__sinit> - 8009c52: 69a3 ldr r3, [r4, #24] - 8009c54: 60a3 str r3, [r4, #8] - 8009c56: 89a3 ldrh r3, [r4, #12] - 8009c58: 071a lsls r2, r3, #28 - 8009c5a: d501 bpl.n 8009c60 <__swbuf_r+0x20> - 8009c5c: 6923 ldr r3, [r4, #16] - 8009c5e: b943 cbnz r3, 8009c72 <__swbuf_r+0x32> - 8009c60: 4621 mov r1, r4 - 8009c62: 4628 mov r0, r5 - 8009c64: f000 f82a bl 8009cbc <__swsetup_r> - 8009c68: b118 cbz r0, 8009c72 <__swbuf_r+0x32> - 8009c6a: f04f 37ff mov.w r7, #4294967295 - 8009c6e: 4638 mov r0, r7 - 8009c70: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8009c72: 6823 ldr r3, [r4, #0] - 8009c74: 6922 ldr r2, [r4, #16] - 8009c76: 1a98 subs r0, r3, r2 - 8009c78: 6963 ldr r3, [r4, #20] - 8009c7a: b2f6 uxtb r6, r6 - 8009c7c: 4283 cmp r3, r0 - 8009c7e: 4637 mov r7, r6 - 8009c80: dc05 bgt.n 8009c8e <__swbuf_r+0x4e> - 8009c82: 4621 mov r1, r4 - 8009c84: 4628 mov r0, r5 - 8009c86: f7ff ffb3 bl 8009bf0 <_fflush_r> - 8009c8a: 2800 cmp r0, #0 - 8009c8c: d1ed bne.n 8009c6a <__swbuf_r+0x2a> - 8009c8e: 68a3 ldr r3, [r4, #8] - 8009c90: 3b01 subs r3, #1 - 8009c92: 60a3 str r3, [r4, #8] - 8009c94: 6823 ldr r3, [r4, #0] - 8009c96: 1c5a adds r2, r3, #1 - 8009c98: 6022 str r2, [r4, #0] - 8009c9a: 701e strb r6, [r3, #0] - 8009c9c: 6962 ldr r2, [r4, #20] - 8009c9e: 1c43 adds r3, r0, #1 - 8009ca0: 429a cmp r2, r3 - 8009ca2: d004 beq.n 8009cae <__swbuf_r+0x6e> - 8009ca4: 89a3 ldrh r3, [r4, #12] - 8009ca6: 07db lsls r3, r3, #31 - 8009ca8: d5e1 bpl.n 8009c6e <__swbuf_r+0x2e> - 8009caa: 2e0a cmp r6, #10 - 8009cac: d1df bne.n 8009c6e <__swbuf_r+0x2e> - 8009cae: 4621 mov r1, r4 - 8009cb0: 4628 mov r0, r5 - 8009cb2: f7ff ff9d bl 8009bf0 <_fflush_r> - 8009cb6: 2800 cmp r0, #0 - 8009cb8: d0d9 beq.n 8009c6e <__swbuf_r+0x2e> - 8009cba: e7d6 b.n 8009c6a <__swbuf_r+0x2a> +08005124 <__sfputs_r>: + 8005124: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005126: 4606 mov r6, r0 + 8005128: 460f mov r7, r1 + 800512a: 4614 mov r4, r2 + 800512c: 18d5 adds r5, r2, r3 + 800512e: 42ac cmp r4, r5 + 8005130: d101 bne.n 8005136 <__sfputs_r+0x12> + 8005132: 2000 movs r0, #0 + 8005134: e007 b.n 8005146 <__sfputs_r+0x22> + 8005136: f814 1b01 ldrb.w r1, [r4], #1 + 800513a: 463a mov r2, r7 + 800513c: 4630 mov r0, r6 + 800513e: f7ff ffda bl 80050f6 <__sfputc_r> + 8005142: 1c43 adds r3, r0, #1 + 8005144: d1f3 bne.n 800512e <__sfputs_r+0xa> + 8005146: bdf8 pop {r3, r4, r5, r6, r7, pc} -08009cbc <__swsetup_r>: - 8009cbc: b538 push {r3, r4, r5, lr} - 8009cbe: 4b29 ldr r3, [pc, #164] @ (8009d64 <__swsetup_r+0xa8>) - 8009cc0: 4605 mov r5, r0 - 8009cc2: 6818 ldr r0, [r3, #0] - 8009cc4: 460c mov r4, r1 - 8009cc6: b118 cbz r0, 8009cd0 <__swsetup_r+0x14> - 8009cc8: 6a03 ldr r3, [r0, #32] - 8009cca: b90b cbnz r3, 8009cd0 <__swsetup_r+0x14> - 8009ccc: f7fe f85e bl 8007d8c <__sinit> - 8009cd0: f9b4 300c ldrsh.w r3, [r4, #12] - 8009cd4: 0719 lsls r1, r3, #28 - 8009cd6: d422 bmi.n 8009d1e <__swsetup_r+0x62> - 8009cd8: 06da lsls r2, r3, #27 - 8009cda: d407 bmi.n 8009cec <__swsetup_r+0x30> - 8009cdc: 2209 movs r2, #9 - 8009cde: 602a str r2, [r5, #0] - 8009ce0: f043 0340 orr.w r3, r3, #64 @ 0x40 - 8009ce4: 81a3 strh r3, [r4, #12] - 8009ce6: f04f 30ff mov.w r0, #4294967295 - 8009cea: e033 b.n 8009d54 <__swsetup_r+0x98> - 8009cec: 0758 lsls r0, r3, #29 - 8009cee: d512 bpl.n 8009d16 <__swsetup_r+0x5a> - 8009cf0: 6b61 ldr r1, [r4, #52] @ 0x34 - 8009cf2: b141 cbz r1, 8009d06 <__swsetup_r+0x4a> - 8009cf4: f104 0344 add.w r3, r4, #68 @ 0x44 - 8009cf8: 4299 cmp r1, r3 - 8009cfa: d002 beq.n 8009d02 <__swsetup_r+0x46> - 8009cfc: 4628 mov r0, r5 - 8009cfe: f7fe ffdf bl 8008cc0 <_free_r> - 8009d02: 2300 movs r3, #0 - 8009d04: 6363 str r3, [r4, #52] @ 0x34 - 8009d06: 89a3 ldrh r3, [r4, #12] - 8009d08: f023 0324 bic.w r3, r3, #36 @ 0x24 - 8009d0c: 81a3 strh r3, [r4, #12] - 8009d0e: 2300 movs r3, #0 - 8009d10: 6063 str r3, [r4, #4] - 8009d12: 6923 ldr r3, [r4, #16] - 8009d14: 6023 str r3, [r4, #0] - 8009d16: 89a3 ldrh r3, [r4, #12] - 8009d18: f043 0308 orr.w r3, r3, #8 - 8009d1c: 81a3 strh r3, [r4, #12] - 8009d1e: 6923 ldr r3, [r4, #16] - 8009d20: b94b cbnz r3, 8009d36 <__swsetup_r+0x7a> - 8009d22: 89a3 ldrh r3, [r4, #12] - 8009d24: f403 7320 and.w r3, r3, #640 @ 0x280 - 8009d28: f5b3 7f00 cmp.w r3, #512 @ 0x200 - 8009d2c: d003 beq.n 8009d36 <__swsetup_r+0x7a> - 8009d2e: 4621 mov r1, r4 - 8009d30: 4628 mov r0, r5 - 8009d32: f000 f909 bl 8009f48 <__smakebuf_r> - 8009d36: f9b4 300c ldrsh.w r3, [r4, #12] - 8009d3a: f013 0201 ands.w r2, r3, #1 - 8009d3e: d00a beq.n 8009d56 <__swsetup_r+0x9a> - 8009d40: 2200 movs r2, #0 - 8009d42: 60a2 str r2, [r4, #8] - 8009d44: 6962 ldr r2, [r4, #20] - 8009d46: 4252 negs r2, r2 - 8009d48: 61a2 str r2, [r4, #24] - 8009d4a: 6922 ldr r2, [r4, #16] - 8009d4c: b942 cbnz r2, 8009d60 <__swsetup_r+0xa4> - 8009d4e: f013 0080 ands.w r0, r3, #128 @ 0x80 - 8009d52: d1c5 bne.n 8009ce0 <__swsetup_r+0x24> - 8009d54: bd38 pop {r3, r4, r5, pc} - 8009d56: 0799 lsls r1, r3, #30 - 8009d58: bf58 it pl - 8009d5a: 6962 ldrpl r2, [r4, #20] - 8009d5c: 60a2 str r2, [r4, #8] - 8009d5e: e7f4 b.n 8009d4a <__swsetup_r+0x8e> - 8009d60: 2000 movs r0, #0 - 8009d62: e7f7 b.n 8009d54 <__swsetup_r+0x98> - 8009d64: 20000018 .word 0x20000018 +08005148 <_vfiprintf_r>: + 8005148: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 800514c: 460d mov r5, r1 + 800514e: b09d sub sp, #116 @ 0x74 + 8005150: 4614 mov r4, r2 + 8005152: 4698 mov r8, r3 + 8005154: 4606 mov r6, r0 + 8005156: b118 cbz r0, 8005160 <_vfiprintf_r+0x18> + 8005158: 6a03 ldr r3, [r0, #32] + 800515a: b90b cbnz r3, 8005160 <_vfiprintf_r+0x18> + 800515c: f7fe fac8 bl 80036f0 <__sinit> + 8005160: 6e6b ldr r3, [r5, #100] @ 0x64 + 8005162: 07d9 lsls r1, r3, #31 + 8005164: d405 bmi.n 8005172 <_vfiprintf_r+0x2a> + 8005166: 89ab ldrh r3, [r5, #12] + 8005168: 059a lsls r2, r3, #22 + 800516a: d402 bmi.n 8005172 <_vfiprintf_r+0x2a> + 800516c: 6da8 ldr r0, [r5, #88] @ 0x58 + 800516e: f7fe fbb6 bl 80038de <__retarget_lock_acquire_recursive> + 8005172: 89ab ldrh r3, [r5, #12] + 8005174: 071b lsls r3, r3, #28 + 8005176: d501 bpl.n 800517c <_vfiprintf_r+0x34> + 8005178: 692b ldr r3, [r5, #16] + 800517a: b99b cbnz r3, 80051a4 <_vfiprintf_r+0x5c> + 800517c: 4629 mov r1, r5 + 800517e: 4630 mov r0, r6 + 8005180: f000 f938 bl 80053f4 <__swsetup_r> + 8005184: b170 cbz r0, 80051a4 <_vfiprintf_r+0x5c> + 8005186: 6e6b ldr r3, [r5, #100] @ 0x64 + 8005188: 07dc lsls r4, r3, #31 + 800518a: d504 bpl.n 8005196 <_vfiprintf_r+0x4e> + 800518c: f04f 30ff mov.w r0, #4294967295 + 8005190: b01d add sp, #116 @ 0x74 + 8005192: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8005196: 89ab ldrh r3, [r5, #12] + 8005198: 0598 lsls r0, r3, #22 + 800519a: d4f7 bmi.n 800518c <_vfiprintf_r+0x44> + 800519c: 6da8 ldr r0, [r5, #88] @ 0x58 + 800519e: f7fe fb9f bl 80038e0 <__retarget_lock_release_recursive> + 80051a2: e7f3 b.n 800518c <_vfiprintf_r+0x44> + 80051a4: 2300 movs r3, #0 + 80051a6: 9309 str r3, [sp, #36] @ 0x24 + 80051a8: 2320 movs r3, #32 + 80051aa: f88d 3029 strb.w r3, [sp, #41] @ 0x29 + 80051ae: f8cd 800c str.w r8, [sp, #12] + 80051b2: 2330 movs r3, #48 @ 0x30 + 80051b4: f8df 81ac ldr.w r8, [pc, #428] @ 8005364 <_vfiprintf_r+0x21c> + 80051b8: f88d 302a strb.w r3, [sp, #42] @ 0x2a + 80051bc: f04f 0901 mov.w r9, #1 + 80051c0: 4623 mov r3, r4 + 80051c2: 469a mov sl, r3 + 80051c4: f813 2b01 ldrb.w r2, [r3], #1 + 80051c8: b10a cbz r2, 80051ce <_vfiprintf_r+0x86> + 80051ca: 2a25 cmp r2, #37 @ 0x25 + 80051cc: d1f9 bne.n 80051c2 <_vfiprintf_r+0x7a> + 80051ce: ebba 0b04 subs.w fp, sl, r4 + 80051d2: d00b beq.n 80051ec <_vfiprintf_r+0xa4> + 80051d4: 465b mov r3, fp + 80051d6: 4622 mov r2, r4 + 80051d8: 4629 mov r1, r5 + 80051da: 4630 mov r0, r6 + 80051dc: f7ff ffa2 bl 8005124 <__sfputs_r> + 80051e0: 3001 adds r0, #1 + 80051e2: f000 80a7 beq.w 8005334 <_vfiprintf_r+0x1ec> + 80051e6: 9a09 ldr r2, [sp, #36] @ 0x24 + 80051e8: 445a add r2, fp + 80051ea: 9209 str r2, [sp, #36] @ 0x24 + 80051ec: f89a 3000 ldrb.w r3, [sl] + 80051f0: 2b00 cmp r3, #0 + 80051f2: f000 809f beq.w 8005334 <_vfiprintf_r+0x1ec> + 80051f6: 2300 movs r3, #0 + 80051f8: f04f 32ff mov.w r2, #4294967295 + 80051fc: e9cd 2305 strd r2, r3, [sp, #20] + 8005200: f10a 0a01 add.w sl, sl, #1 + 8005204: 9304 str r3, [sp, #16] + 8005206: 9307 str r3, [sp, #28] + 8005208: f88d 3053 strb.w r3, [sp, #83] @ 0x53 + 800520c: 931a str r3, [sp, #104] @ 0x68 + 800520e: 4654 mov r4, sl + 8005210: 2205 movs r2, #5 + 8005212: f814 1b01 ldrb.w r1, [r4], #1 + 8005216: 4853 ldr r0, [pc, #332] @ (8005364 <_vfiprintf_r+0x21c>) + 8005218: f7fa ffe2 bl 80001e0 + 800521c: 9a04 ldr r2, [sp, #16] + 800521e: b9d8 cbnz r0, 8005258 <_vfiprintf_r+0x110> + 8005220: 06d1 lsls r1, r2, #27 + 8005222: bf44 itt mi + 8005224: 2320 movmi r3, #32 + 8005226: f88d 3053 strbmi.w r3, [sp, #83] @ 0x53 + 800522a: 0713 lsls r3, r2, #28 + 800522c: bf44 itt mi + 800522e: 232b movmi r3, #43 @ 0x2b + 8005230: f88d 3053 strbmi.w r3, [sp, #83] @ 0x53 + 8005234: f89a 3000 ldrb.w r3, [sl] + 8005238: 2b2a cmp r3, #42 @ 0x2a + 800523a: d015 beq.n 8005268 <_vfiprintf_r+0x120> + 800523c: 9a07 ldr r2, [sp, #28] + 800523e: 4654 mov r4, sl + 8005240: 2000 movs r0, #0 + 8005242: f04f 0c0a mov.w ip, #10 + 8005246: 4621 mov r1, r4 + 8005248: f811 3b01 ldrb.w r3, [r1], #1 + 800524c: 3b30 subs r3, #48 @ 0x30 + 800524e: 2b09 cmp r3, #9 + 8005250: d94b bls.n 80052ea <_vfiprintf_r+0x1a2> + 8005252: b1b0 cbz r0, 8005282 <_vfiprintf_r+0x13a> + 8005254: 9207 str r2, [sp, #28] + 8005256: e014 b.n 8005282 <_vfiprintf_r+0x13a> + 8005258: eba0 0308 sub.w r3, r0, r8 + 800525c: fa09 f303 lsl.w r3, r9, r3 + 8005260: 4313 orrs r3, r2 + 8005262: 9304 str r3, [sp, #16] + 8005264: 46a2 mov sl, r4 + 8005266: e7d2 b.n 800520e <_vfiprintf_r+0xc6> + 8005268: 9b03 ldr r3, [sp, #12] + 800526a: 1d19 adds r1, r3, #4 + 800526c: 681b ldr r3, [r3, #0] + 800526e: 9103 str r1, [sp, #12] + 8005270: 2b00 cmp r3, #0 + 8005272: bfbb ittet lt + 8005274: 425b neglt r3, r3 + 8005276: f042 0202 orrlt.w r2, r2, #2 + 800527a: 9307 strge r3, [sp, #28] + 800527c: 9307 strlt r3, [sp, #28] + 800527e: bfb8 it lt + 8005280: 9204 strlt r2, [sp, #16] + 8005282: 7823 ldrb r3, [r4, #0] + 8005284: 2b2e cmp r3, #46 @ 0x2e + 8005286: d10a bne.n 800529e <_vfiprintf_r+0x156> + 8005288: 7863 ldrb r3, [r4, #1] + 800528a: 2b2a cmp r3, #42 @ 0x2a + 800528c: d132 bne.n 80052f4 <_vfiprintf_r+0x1ac> + 800528e: 9b03 ldr r3, [sp, #12] + 8005290: 1d1a adds r2, r3, #4 + 8005292: 681b ldr r3, [r3, #0] + 8005294: 9203 str r2, [sp, #12] + 8005296: ea43 73e3 orr.w r3, r3, r3, asr #31 + 800529a: 3402 adds r4, #2 + 800529c: 9305 str r3, [sp, #20] + 800529e: f8df a0d4 ldr.w sl, [pc, #212] @ 8005374 <_vfiprintf_r+0x22c> + 80052a2: 7821 ldrb r1, [r4, #0] + 80052a4: 2203 movs r2, #3 + 80052a6: 4650 mov r0, sl + 80052a8: f7fa ff9a bl 80001e0 + 80052ac: b138 cbz r0, 80052be <_vfiprintf_r+0x176> + 80052ae: 9b04 ldr r3, [sp, #16] + 80052b0: eba0 000a sub.w r0, r0, sl + 80052b4: 2240 movs r2, #64 @ 0x40 + 80052b6: 4082 lsls r2, r0 + 80052b8: 4313 orrs r3, r2 + 80052ba: 3401 adds r4, #1 + 80052bc: 9304 str r3, [sp, #16] + 80052be: f814 1b01 ldrb.w r1, [r4], #1 + 80052c2: 4829 ldr r0, [pc, #164] @ (8005368 <_vfiprintf_r+0x220>) + 80052c4: f88d 1028 strb.w r1, [sp, #40] @ 0x28 + 80052c8: 2206 movs r2, #6 + 80052ca: f7fa ff89 bl 80001e0 + 80052ce: 2800 cmp r0, #0 + 80052d0: d03f beq.n 8005352 <_vfiprintf_r+0x20a> + 80052d2: 4b26 ldr r3, [pc, #152] @ (800536c <_vfiprintf_r+0x224>) + 80052d4: bb1b cbnz r3, 800531e <_vfiprintf_r+0x1d6> + 80052d6: 9b03 ldr r3, [sp, #12] + 80052d8: 3307 adds r3, #7 + 80052da: f023 0307 bic.w r3, r3, #7 + 80052de: 3308 adds r3, #8 + 80052e0: 9303 str r3, [sp, #12] + 80052e2: 9b09 ldr r3, [sp, #36] @ 0x24 + 80052e4: 443b add r3, r7 + 80052e6: 9309 str r3, [sp, #36] @ 0x24 + 80052e8: e76a b.n 80051c0 <_vfiprintf_r+0x78> + 80052ea: fb0c 3202 mla r2, ip, r2, r3 + 80052ee: 460c mov r4, r1 + 80052f0: 2001 movs r0, #1 + 80052f2: e7a8 b.n 8005246 <_vfiprintf_r+0xfe> + 80052f4: 2300 movs r3, #0 + 80052f6: 3401 adds r4, #1 + 80052f8: 9305 str r3, [sp, #20] + 80052fa: 4619 mov r1, r3 + 80052fc: f04f 0c0a mov.w ip, #10 + 8005300: 4620 mov r0, r4 + 8005302: f810 2b01 ldrb.w r2, [r0], #1 + 8005306: 3a30 subs r2, #48 @ 0x30 + 8005308: 2a09 cmp r2, #9 + 800530a: d903 bls.n 8005314 <_vfiprintf_r+0x1cc> + 800530c: 2b00 cmp r3, #0 + 800530e: d0c6 beq.n 800529e <_vfiprintf_r+0x156> + 8005310: 9105 str r1, [sp, #20] + 8005312: e7c4 b.n 800529e <_vfiprintf_r+0x156> + 8005314: fb0c 2101 mla r1, ip, r1, r2 + 8005318: 4604 mov r4, r0 + 800531a: 2301 movs r3, #1 + 800531c: e7f0 b.n 8005300 <_vfiprintf_r+0x1b8> + 800531e: ab03 add r3, sp, #12 + 8005320: 9300 str r3, [sp, #0] + 8005322: 462a mov r2, r5 + 8005324: 4b12 ldr r3, [pc, #72] @ (8005370 <_vfiprintf_r+0x228>) + 8005326: a904 add r1, sp, #16 + 8005328: 4630 mov r0, r6 + 800532a: f7fd fd9f bl 8002e6c <_printf_float> + 800532e: 4607 mov r7, r0 + 8005330: 1c78 adds r0, r7, #1 + 8005332: d1d6 bne.n 80052e2 <_vfiprintf_r+0x19a> + 8005334: 6e6b ldr r3, [r5, #100] @ 0x64 + 8005336: 07d9 lsls r1, r3, #31 + 8005338: d405 bmi.n 8005346 <_vfiprintf_r+0x1fe> + 800533a: 89ab ldrh r3, [r5, #12] + 800533c: 059a lsls r2, r3, #22 + 800533e: d402 bmi.n 8005346 <_vfiprintf_r+0x1fe> + 8005340: 6da8 ldr r0, [r5, #88] @ 0x58 + 8005342: f7fe facd bl 80038e0 <__retarget_lock_release_recursive> + 8005346: 89ab ldrh r3, [r5, #12] + 8005348: 065b lsls r3, r3, #25 + 800534a: f53f af1f bmi.w 800518c <_vfiprintf_r+0x44> + 800534e: 9809 ldr r0, [sp, #36] @ 0x24 + 8005350: e71e b.n 8005190 <_vfiprintf_r+0x48> + 8005352: ab03 add r3, sp, #12 + 8005354: 9300 str r3, [sp, #0] + 8005356: 462a mov r2, r5 + 8005358: 4b05 ldr r3, [pc, #20] @ (8005370 <_vfiprintf_r+0x228>) + 800535a: a904 add r1, sp, #16 + 800535c: 4630 mov r0, r6 + 800535e: f7fe f81d bl 800339c <_printf_i> + 8005362: e7e4 b.n 800532e <_vfiprintf_r+0x1e6> + 8005364: 080057e8 .word 0x080057e8 + 8005368: 080057f2 .word 0x080057f2 + 800536c: 08002e6d .word 0x08002e6d + 8005370: 08005125 .word 0x08005125 + 8005374: 080057ee .word 0x080057ee -08009d68 : - 8009d68: 4288 cmp r0, r1 - 8009d6a: b510 push {r4, lr} - 8009d6c: eb01 0402 add.w r4, r1, r2 - 8009d70: d902 bls.n 8009d78 - 8009d72: 4284 cmp r4, r0 - 8009d74: 4623 mov r3, r4 - 8009d76: d807 bhi.n 8009d88 - 8009d78: 1e43 subs r3, r0, #1 - 8009d7a: 42a1 cmp r1, r4 - 8009d7c: d008 beq.n 8009d90 - 8009d7e: f811 2b01 ldrb.w r2, [r1], #1 - 8009d82: f803 2f01 strb.w r2, [r3, #1]! - 8009d86: e7f8 b.n 8009d7a - 8009d88: 4402 add r2, r0 - 8009d8a: 4601 mov r1, r0 - 8009d8c: 428a cmp r2, r1 - 8009d8e: d100 bne.n 8009d92 - 8009d90: bd10 pop {r4, pc} - 8009d92: f813 4d01 ldrb.w r4, [r3, #-1]! - 8009d96: f802 4d01 strb.w r4, [r2, #-1]! - 8009d9a: e7f7 b.n 8009d8c +08005378 <__swbuf_r>: + 8005378: b5f8 push {r3, r4, r5, r6, r7, lr} + 800537a: 460e mov r6, r1 + 800537c: 4614 mov r4, r2 + 800537e: 4605 mov r5, r0 + 8005380: b118 cbz r0, 800538a <__swbuf_r+0x12> + 8005382: 6a03 ldr r3, [r0, #32] + 8005384: b90b cbnz r3, 800538a <__swbuf_r+0x12> + 8005386: f7fe f9b3 bl 80036f0 <__sinit> + 800538a: 69a3 ldr r3, [r4, #24] + 800538c: 60a3 str r3, [r4, #8] + 800538e: 89a3 ldrh r3, [r4, #12] + 8005390: 071a lsls r2, r3, #28 + 8005392: d501 bpl.n 8005398 <__swbuf_r+0x20> + 8005394: 6923 ldr r3, [r4, #16] + 8005396: b943 cbnz r3, 80053aa <__swbuf_r+0x32> + 8005398: 4621 mov r1, r4 + 800539a: 4628 mov r0, r5 + 800539c: f000 f82a bl 80053f4 <__swsetup_r> + 80053a0: b118 cbz r0, 80053aa <__swbuf_r+0x32> + 80053a2: f04f 37ff mov.w r7, #4294967295 + 80053a6: 4638 mov r0, r7 + 80053a8: bdf8 pop {r3, r4, r5, r6, r7, pc} + 80053aa: 6823 ldr r3, [r4, #0] + 80053ac: 6922 ldr r2, [r4, #16] + 80053ae: 1a98 subs r0, r3, r2 + 80053b0: 6963 ldr r3, [r4, #20] + 80053b2: b2f6 uxtb r6, r6 + 80053b4: 4283 cmp r3, r0 + 80053b6: 4637 mov r7, r6 + 80053b8: dc05 bgt.n 80053c6 <__swbuf_r+0x4e> + 80053ba: 4621 mov r1, r4 + 80053bc: 4628 mov r0, r5 + 80053be: f7ff fde9 bl 8004f94 <_fflush_r> + 80053c2: 2800 cmp r0, #0 + 80053c4: d1ed bne.n 80053a2 <__swbuf_r+0x2a> + 80053c6: 68a3 ldr r3, [r4, #8] + 80053c8: 3b01 subs r3, #1 + 80053ca: 60a3 str r3, [r4, #8] + 80053cc: 6823 ldr r3, [r4, #0] + 80053ce: 1c5a adds r2, r3, #1 + 80053d0: 6022 str r2, [r4, #0] + 80053d2: 701e strb r6, [r3, #0] + 80053d4: 6962 ldr r2, [r4, #20] + 80053d6: 1c43 adds r3, r0, #1 + 80053d8: 429a cmp r2, r3 + 80053da: d004 beq.n 80053e6 <__swbuf_r+0x6e> + 80053dc: 89a3 ldrh r3, [r4, #12] + 80053de: 07db lsls r3, r3, #31 + 80053e0: d5e1 bpl.n 80053a6 <__swbuf_r+0x2e> + 80053e2: 2e0a cmp r6, #10 + 80053e4: d1df bne.n 80053a6 <__swbuf_r+0x2e> + 80053e6: 4621 mov r1, r4 + 80053e8: 4628 mov r0, r5 + 80053ea: f7ff fdd3 bl 8004f94 <_fflush_r> + 80053ee: 2800 cmp r0, #0 + 80053f0: d0d9 beq.n 80053a6 <__swbuf_r+0x2e> + 80053f2: e7d6 b.n 80053a2 <__swbuf_r+0x2a> -08009d9c <_sbrk_r>: - 8009d9c: b538 push {r3, r4, r5, lr} - 8009d9e: 4d06 ldr r5, [pc, #24] @ (8009db8 <_sbrk_r+0x1c>) - 8009da0: 2300 movs r3, #0 - 8009da2: 4604 mov r4, r0 - 8009da4: 4608 mov r0, r1 - 8009da6: 602b str r3, [r5, #0] - 8009da8: f7fa f8d6 bl 8003f58 <_sbrk> - 8009dac: 1c43 adds r3, r0, #1 - 8009dae: d102 bne.n 8009db6 <_sbrk_r+0x1a> - 8009db0: 682b ldr r3, [r5, #0] - 8009db2: b103 cbz r3, 8009db6 <_sbrk_r+0x1a> - 8009db4: 6023 str r3, [r4, #0] - 8009db6: bd38 pop {r3, r4, r5, pc} - 8009db8: 200004e0 .word 0x200004e0 +080053f4 <__swsetup_r>: + 80053f4: b538 push {r3, r4, r5, lr} + 80053f6: 4b29 ldr r3, [pc, #164] @ (800549c <__swsetup_r+0xa8>) + 80053f8: 4605 mov r5, r0 + 80053fa: 6818 ldr r0, [r3, #0] + 80053fc: 460c mov r4, r1 + 80053fe: b118 cbz r0, 8005408 <__swsetup_r+0x14> + 8005400: 6a03 ldr r3, [r0, #32] + 8005402: b90b cbnz r3, 8005408 <__swsetup_r+0x14> + 8005404: f7fe f974 bl 80036f0 <__sinit> + 8005408: f9b4 300c ldrsh.w r3, [r4, #12] + 800540c: 0719 lsls r1, r3, #28 + 800540e: d422 bmi.n 8005456 <__swsetup_r+0x62> + 8005410: 06da lsls r2, r3, #27 + 8005412: d407 bmi.n 8005424 <__swsetup_r+0x30> + 8005414: 2209 movs r2, #9 + 8005416: 602a str r2, [r5, #0] + 8005418: f043 0340 orr.w r3, r3, #64 @ 0x40 + 800541c: 81a3 strh r3, [r4, #12] + 800541e: f04f 30ff mov.w r0, #4294967295 + 8005422: e033 b.n 800548c <__swsetup_r+0x98> + 8005424: 0758 lsls r0, r3, #29 + 8005426: d512 bpl.n 800544e <__swsetup_r+0x5a> + 8005428: 6b61 ldr r1, [r4, #52] @ 0x34 + 800542a: b141 cbz r1, 800543e <__swsetup_r+0x4a> + 800542c: f104 0344 add.w r3, r4, #68 @ 0x44 + 8005430: 4299 cmp r1, r3 + 8005432: d002 beq.n 800543a <__swsetup_r+0x46> + 8005434: 4628 mov r0, r5 + 8005436: f7ff f8af bl 8004598 <_free_r> + 800543a: 2300 movs r3, #0 + 800543c: 6363 str r3, [r4, #52] @ 0x34 + 800543e: 89a3 ldrh r3, [r4, #12] + 8005440: f023 0324 bic.w r3, r3, #36 @ 0x24 + 8005444: 81a3 strh r3, [r4, #12] + 8005446: 2300 movs r3, #0 + 8005448: 6063 str r3, [r4, #4] + 800544a: 6923 ldr r3, [r4, #16] + 800544c: 6023 str r3, [r4, #0] + 800544e: 89a3 ldrh r3, [r4, #12] + 8005450: f043 0308 orr.w r3, r3, #8 + 8005454: 81a3 strh r3, [r4, #12] + 8005456: 6923 ldr r3, [r4, #16] + 8005458: b94b cbnz r3, 800546e <__swsetup_r+0x7a> + 800545a: 89a3 ldrh r3, [r4, #12] + 800545c: f403 7320 and.w r3, r3, #640 @ 0x280 + 8005460: f5b3 7f00 cmp.w r3, #512 @ 0x200 + 8005464: d003 beq.n 800546e <__swsetup_r+0x7a> + 8005466: 4621 mov r1, r4 + 8005468: 4628 mov r0, r5 + 800546a: f000 f883 bl 8005574 <__smakebuf_r> + 800546e: f9b4 300c ldrsh.w r3, [r4, #12] + 8005472: f013 0201 ands.w r2, r3, #1 + 8005476: d00a beq.n 800548e <__swsetup_r+0x9a> + 8005478: 2200 movs r2, #0 + 800547a: 60a2 str r2, [r4, #8] + 800547c: 6962 ldr r2, [r4, #20] + 800547e: 4252 negs r2, r2 + 8005480: 61a2 str r2, [r4, #24] + 8005482: 6922 ldr r2, [r4, #16] + 8005484: b942 cbnz r2, 8005498 <__swsetup_r+0xa4> + 8005486: f013 0080 ands.w r0, r3, #128 @ 0x80 + 800548a: d1c5 bne.n 8005418 <__swsetup_r+0x24> + 800548c: bd38 pop {r3, r4, r5, pc} + 800548e: 0799 lsls r1, r3, #30 + 8005490: bf58 it pl + 8005492: 6962 ldrpl r2, [r4, #20] + 8005494: 60a2 str r2, [r4, #8] + 8005496: e7f4 b.n 8005482 <__swsetup_r+0x8e> + 8005498: 2000 movs r0, #0 + 800549a: e7f7 b.n 800548c <__swsetup_r+0x98> + 800549c: 20000018 .word 0x20000018 -08009dbc : - 8009dbc: 440a add r2, r1 - 8009dbe: 4291 cmp r1, r2 - 8009dc0: f100 33ff add.w r3, r0, #4294967295 - 8009dc4: d100 bne.n 8009dc8 - 8009dc6: 4770 bx lr - 8009dc8: b510 push {r4, lr} - 8009dca: f811 4b01 ldrb.w r4, [r1], #1 - 8009dce: f803 4f01 strb.w r4, [r3, #1]! - 8009dd2: 4291 cmp r1, r2 - 8009dd4: d1f9 bne.n 8009dca - 8009dd6: bd10 pop {r4, pc} +080054a0 <_raise_r>: + 80054a0: 291f cmp r1, #31 + 80054a2: b538 push {r3, r4, r5, lr} + 80054a4: 4605 mov r5, r0 + 80054a6: 460c mov r4, r1 + 80054a8: d904 bls.n 80054b4 <_raise_r+0x14> + 80054aa: 2316 movs r3, #22 + 80054ac: 6003 str r3, [r0, #0] + 80054ae: f04f 30ff mov.w r0, #4294967295 + 80054b2: bd38 pop {r3, r4, r5, pc} + 80054b4: 6bc2 ldr r2, [r0, #60] @ 0x3c + 80054b6: b112 cbz r2, 80054be <_raise_r+0x1e> + 80054b8: f852 3021 ldr.w r3, [r2, r1, lsl #2] + 80054bc: b94b cbnz r3, 80054d2 <_raise_r+0x32> + 80054be: 4628 mov r0, r5 + 80054c0: f000 f830 bl 8005524 <_getpid_r> + 80054c4: 4622 mov r2, r4 + 80054c6: 4601 mov r1, r0 + 80054c8: 4628 mov r0, r5 + 80054ca: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 80054ce: f000 b817 b.w 8005500 <_kill_r> + 80054d2: 2b01 cmp r3, #1 + 80054d4: d00a beq.n 80054ec <_raise_r+0x4c> + 80054d6: 1c59 adds r1, r3, #1 + 80054d8: d103 bne.n 80054e2 <_raise_r+0x42> + 80054da: 2316 movs r3, #22 + 80054dc: 6003 str r3, [r0, #0] + 80054de: 2001 movs r0, #1 + 80054e0: e7e7 b.n 80054b2 <_raise_r+0x12> + 80054e2: 2100 movs r1, #0 + 80054e4: f842 1024 str.w r1, [r2, r4, lsl #2] + 80054e8: 4620 mov r0, r4 + 80054ea: 4798 blx r3 + 80054ec: 2000 movs r0, #0 + 80054ee: e7e0 b.n 80054b2 <_raise_r+0x12> -08009dd8 <__assert_func>: - 8009dd8: b51f push {r0, r1, r2, r3, r4, lr} - 8009dda: 4614 mov r4, r2 - 8009ddc: 461a mov r2, r3 - 8009dde: 4b09 ldr r3, [pc, #36] @ (8009e04 <__assert_func+0x2c>) - 8009de0: 681b ldr r3, [r3, #0] - 8009de2: 4605 mov r5, r0 - 8009de4: 68d8 ldr r0, [r3, #12] - 8009de6: b14c cbz r4, 8009dfc <__assert_func+0x24> - 8009de8: 4b07 ldr r3, [pc, #28] @ (8009e08 <__assert_func+0x30>) - 8009dea: 9100 str r1, [sp, #0] - 8009dec: e9cd 3401 strd r3, r4, [sp, #4] - 8009df0: 4906 ldr r1, [pc, #24] @ (8009e0c <__assert_func+0x34>) - 8009df2: 462b mov r3, r5 - 8009df4: f000 f870 bl 8009ed8 - 8009df8: f000 f904 bl 800a004 - 8009dfc: 4b04 ldr r3, [pc, #16] @ (8009e10 <__assert_func+0x38>) - 8009dfe: 461c mov r4, r3 - 8009e00: e7f3 b.n 8009dea <__assert_func+0x12> - 8009e02: bf00 nop - 8009e04: 20000018 .word 0x20000018 - 8009e08: 0800bab9 .word 0x0800bab9 - 8009e0c: 0800bac6 .word 0x0800bac6 - 8009e10: 0800baf4 .word 0x0800baf4 +080054f0 : + 80054f0: 4b02 ldr r3, [pc, #8] @ (80054fc ) + 80054f2: 4601 mov r1, r0 + 80054f4: 6818 ldr r0, [r3, #0] + 80054f6: f7ff bfd3 b.w 80054a0 <_raise_r> + 80054fa: bf00 nop + 80054fc: 20000018 .word 0x20000018 -08009e14 <_calloc_r>: - 8009e14: b570 push {r4, r5, r6, lr} - 8009e16: fba1 5402 umull r5, r4, r1, r2 - 8009e1a: b934 cbnz r4, 8009e2a <_calloc_r+0x16> - 8009e1c: 4629 mov r1, r5 - 8009e1e: f7fe ffc3 bl 8008da8 <_malloc_r> - 8009e22: 4606 mov r6, r0 - 8009e24: b928 cbnz r0, 8009e32 <_calloc_r+0x1e> - 8009e26: 4630 mov r0, r6 - 8009e28: bd70 pop {r4, r5, r6, pc} - 8009e2a: 220c movs r2, #12 - 8009e2c: 6002 str r2, [r0, #0] - 8009e2e: 2600 movs r6, #0 - 8009e30: e7f9 b.n 8009e26 <_calloc_r+0x12> - 8009e32: 462a mov r2, r5 - 8009e34: 4621 mov r1, r4 - 8009e36: f7fe f86a bl 8007f0e - 8009e3a: e7f4 b.n 8009e26 <_calloc_r+0x12> +08005500 <_kill_r>: + 8005500: b538 push {r3, r4, r5, lr} + 8005502: 4d07 ldr r5, [pc, #28] @ (8005520 <_kill_r+0x20>) + 8005504: 2300 movs r3, #0 + 8005506: 4604 mov r4, r0 + 8005508: 4608 mov r0, r1 + 800550a: 4611 mov r1, r2 + 800550c: 602b str r3, [r5, #0] + 800550e: f7fb fe6e bl 80011ee <_kill> + 8005512: 1c43 adds r3, r0, #1 + 8005514: d102 bne.n 800551c <_kill_r+0x1c> + 8005516: 682b ldr r3, [r5, #0] + 8005518: b103 cbz r3, 800551c <_kill_r+0x1c> + 800551a: 6023 str r3, [r4, #0] + 800551c: bd38 pop {r3, r4, r5, pc} + 800551e: bf00 nop + 8005520: 2000079c .word 0x2000079c -08009e3c <__ascii_mbtowc>: - 8009e3c: b082 sub sp, #8 - 8009e3e: b901 cbnz r1, 8009e42 <__ascii_mbtowc+0x6> - 8009e40: a901 add r1, sp, #4 - 8009e42: b142 cbz r2, 8009e56 <__ascii_mbtowc+0x1a> - 8009e44: b14b cbz r3, 8009e5a <__ascii_mbtowc+0x1e> - 8009e46: 7813 ldrb r3, [r2, #0] - 8009e48: 600b str r3, [r1, #0] - 8009e4a: 7812 ldrb r2, [r2, #0] - 8009e4c: 1e10 subs r0, r2, #0 - 8009e4e: bf18 it ne - 8009e50: 2001 movne r0, #1 - 8009e52: b002 add sp, #8 - 8009e54: 4770 bx lr - 8009e56: 4610 mov r0, r2 - 8009e58: e7fb b.n 8009e52 <__ascii_mbtowc+0x16> - 8009e5a: f06f 0001 mvn.w r0, #1 - 8009e5e: e7f8 b.n 8009e52 <__ascii_mbtowc+0x16> +08005524 <_getpid_r>: + 8005524: f7fb be5b b.w 80011de <_getpid> -08009e60 <_realloc_r>: - 8009e60: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8009e64: 4607 mov r7, r0 - 8009e66: 4614 mov r4, r2 - 8009e68: 460d mov r5, r1 - 8009e6a: b921 cbnz r1, 8009e76 <_realloc_r+0x16> - 8009e6c: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 8009e70: 4611 mov r1, r2 - 8009e72: f7fe bf99 b.w 8008da8 <_malloc_r> - 8009e76: b92a cbnz r2, 8009e84 <_realloc_r+0x24> - 8009e78: f7fe ff22 bl 8008cc0 <_free_r> - 8009e7c: 4625 mov r5, r4 - 8009e7e: 4628 mov r0, r5 - 8009e80: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8009e84: f000 f8c5 bl 800a012 <_malloc_usable_size_r> - 8009e88: 4284 cmp r4, r0 - 8009e8a: 4606 mov r6, r0 - 8009e8c: d802 bhi.n 8009e94 <_realloc_r+0x34> - 8009e8e: ebb4 0f50 cmp.w r4, r0, lsr #1 - 8009e92: d8f4 bhi.n 8009e7e <_realloc_r+0x1e> - 8009e94: 4621 mov r1, r4 - 8009e96: 4638 mov r0, r7 - 8009e98: f7fe ff86 bl 8008da8 <_malloc_r> - 8009e9c: 4680 mov r8, r0 - 8009e9e: b908 cbnz r0, 8009ea4 <_realloc_r+0x44> - 8009ea0: 4645 mov r5, r8 - 8009ea2: e7ec b.n 8009e7e <_realloc_r+0x1e> - 8009ea4: 42b4 cmp r4, r6 - 8009ea6: 4622 mov r2, r4 - 8009ea8: 4629 mov r1, r5 - 8009eaa: bf28 it cs - 8009eac: 4632 movcs r2, r6 - 8009eae: f7ff ff85 bl 8009dbc - 8009eb2: 4629 mov r1, r5 - 8009eb4: 4638 mov r0, r7 - 8009eb6: f7fe ff03 bl 8008cc0 <_free_r> - 8009eba: e7f1 b.n 8009ea0 <_realloc_r+0x40> +08005528 <__swhatbuf_r>: + 8005528: b570 push {r4, r5, r6, lr} + 800552a: 460c mov r4, r1 + 800552c: f9b1 100e ldrsh.w r1, [r1, #14] + 8005530: 2900 cmp r1, #0 + 8005532: b096 sub sp, #88 @ 0x58 + 8005534: 4615 mov r5, r2 + 8005536: 461e mov r6, r3 + 8005538: da0d bge.n 8005556 <__swhatbuf_r+0x2e> + 800553a: 89a3 ldrh r3, [r4, #12] + 800553c: f013 0f80 tst.w r3, #128 @ 0x80 + 8005540: f04f 0100 mov.w r1, #0 + 8005544: bf14 ite ne + 8005546: 2340 movne r3, #64 @ 0x40 + 8005548: f44f 6380 moveq.w r3, #1024 @ 0x400 + 800554c: 2000 movs r0, #0 + 800554e: 6031 str r1, [r6, #0] + 8005550: 602b str r3, [r5, #0] + 8005552: b016 add sp, #88 @ 0x58 + 8005554: bd70 pop {r4, r5, r6, pc} + 8005556: 466a mov r2, sp + 8005558: f000 f848 bl 80055ec <_fstat_r> + 800555c: 2800 cmp r0, #0 + 800555e: dbec blt.n 800553a <__swhatbuf_r+0x12> + 8005560: 9901 ldr r1, [sp, #4] + 8005562: f401 4170 and.w r1, r1, #61440 @ 0xf000 + 8005566: f5a1 5300 sub.w r3, r1, #8192 @ 0x2000 + 800556a: 4259 negs r1, r3 + 800556c: 4159 adcs r1, r3 + 800556e: f44f 6380 mov.w r3, #1024 @ 0x400 + 8005572: e7eb b.n 800554c <__swhatbuf_r+0x24> -08009ebc <__ascii_wctomb>: - 8009ebc: 4603 mov r3, r0 - 8009ebe: 4608 mov r0, r1 - 8009ec0: b141 cbz r1, 8009ed4 <__ascii_wctomb+0x18> - 8009ec2: 2aff cmp r2, #255 @ 0xff - 8009ec4: d904 bls.n 8009ed0 <__ascii_wctomb+0x14> - 8009ec6: 228a movs r2, #138 @ 0x8a - 8009ec8: 601a str r2, [r3, #0] - 8009eca: f04f 30ff mov.w r0, #4294967295 - 8009ece: 4770 bx lr - 8009ed0: 700a strb r2, [r1, #0] - 8009ed2: 2001 movs r0, #1 - 8009ed4: 4770 bx lr - ... +08005574 <__smakebuf_r>: + 8005574: 898b ldrh r3, [r1, #12] + 8005576: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} + 8005578: 079d lsls r5, r3, #30 + 800557a: 4606 mov r6, r0 + 800557c: 460c mov r4, r1 + 800557e: d507 bpl.n 8005590 <__smakebuf_r+0x1c> + 8005580: f104 0347 add.w r3, r4, #71 @ 0x47 + 8005584: 6023 str r3, [r4, #0] + 8005586: 6123 str r3, [r4, #16] + 8005588: 2301 movs r3, #1 + 800558a: 6163 str r3, [r4, #20] + 800558c: b003 add sp, #12 + 800558e: bdf0 pop {r4, r5, r6, r7, pc} + 8005590: ab01 add r3, sp, #4 + 8005592: 466a mov r2, sp + 8005594: f7ff ffc8 bl 8005528 <__swhatbuf_r> + 8005598: 9f00 ldr r7, [sp, #0] + 800559a: 4605 mov r5, r0 + 800559c: 4639 mov r1, r7 + 800559e: 4630 mov r0, r6 + 80055a0: f7ff f86e bl 8004680 <_malloc_r> + 80055a4: b948 cbnz r0, 80055ba <__smakebuf_r+0x46> + 80055a6: f9b4 300c ldrsh.w r3, [r4, #12] + 80055aa: 059a lsls r2, r3, #22 + 80055ac: d4ee bmi.n 800558c <__smakebuf_r+0x18> + 80055ae: f023 0303 bic.w r3, r3, #3 + 80055b2: f043 0302 orr.w r3, r3, #2 + 80055b6: 81a3 strh r3, [r4, #12] + 80055b8: e7e2 b.n 8005580 <__smakebuf_r+0xc> + 80055ba: 89a3 ldrh r3, [r4, #12] + 80055bc: 6020 str r0, [r4, #0] + 80055be: f043 0380 orr.w r3, r3, #128 @ 0x80 + 80055c2: 81a3 strh r3, [r4, #12] + 80055c4: 9b01 ldr r3, [sp, #4] + 80055c6: e9c4 0704 strd r0, r7, [r4, #16] + 80055ca: b15b cbz r3, 80055e4 <__smakebuf_r+0x70> + 80055cc: f9b4 100e ldrsh.w r1, [r4, #14] + 80055d0: 4630 mov r0, r6 + 80055d2: f000 f81d bl 8005610 <_isatty_r> + 80055d6: b128 cbz r0, 80055e4 <__smakebuf_r+0x70> + 80055d8: 89a3 ldrh r3, [r4, #12] + 80055da: f023 0303 bic.w r3, r3, #3 + 80055de: f043 0301 orr.w r3, r3, #1 + 80055e2: 81a3 strh r3, [r4, #12] + 80055e4: 89a3 ldrh r3, [r4, #12] + 80055e6: 431d orrs r5, r3 + 80055e8: 81a5 strh r5, [r4, #12] + 80055ea: e7cf b.n 800558c <__smakebuf_r+0x18> -08009ed8 : - 8009ed8: b40e push {r1, r2, r3} - 8009eda: b503 push {r0, r1, lr} - 8009edc: 4601 mov r1, r0 - 8009ede: ab03 add r3, sp, #12 - 8009ee0: 4805 ldr r0, [pc, #20] @ (8009ef8 ) - 8009ee2: f853 2b04 ldr.w r2, [r3], #4 - 8009ee6: 6800 ldr r0, [r0, #0] - 8009ee8: 9301 str r3, [sp, #4] - 8009eea: f7ff fce5 bl 80098b8 <_vfiprintf_r> - 8009eee: b002 add sp, #8 - 8009ef0: f85d eb04 ldr.w lr, [sp], #4 - 8009ef4: b003 add sp, #12 - 8009ef6: 4770 bx lr - 8009ef8: 20000018 .word 0x20000018 +080055ec <_fstat_r>: + 80055ec: b538 push {r3, r4, r5, lr} + 80055ee: 4d07 ldr r5, [pc, #28] @ (800560c <_fstat_r+0x20>) + 80055f0: 2300 movs r3, #0 + 80055f2: 4604 mov r4, r0 + 80055f4: 4608 mov r0, r1 + 80055f6: 4611 mov r1, r2 + 80055f8: 602b str r3, [r5, #0] + 80055fa: f7fb fe58 bl 80012ae <_fstat> + 80055fe: 1c43 adds r3, r0, #1 + 8005600: d102 bne.n 8005608 <_fstat_r+0x1c> + 8005602: 682b ldr r3, [r5, #0] + 8005604: b103 cbz r3, 8005608 <_fstat_r+0x1c> + 8005606: 6023 str r3, [r4, #0] + 8005608: bd38 pop {r3, r4, r5, pc} + 800560a: bf00 nop + 800560c: 2000079c .word 0x2000079c -08009efc <__swhatbuf_r>: - 8009efc: b570 push {r4, r5, r6, lr} - 8009efe: 460c mov r4, r1 - 8009f00: f9b1 100e ldrsh.w r1, [r1, #14] - 8009f04: 2900 cmp r1, #0 - 8009f06: b096 sub sp, #88 @ 0x58 - 8009f08: 4615 mov r5, r2 - 8009f0a: 461e mov r6, r3 - 8009f0c: da0d bge.n 8009f2a <__swhatbuf_r+0x2e> - 8009f0e: 89a3 ldrh r3, [r4, #12] - 8009f10: f013 0f80 tst.w r3, #128 @ 0x80 - 8009f14: f04f 0100 mov.w r1, #0 - 8009f18: bf14 ite ne - 8009f1a: 2340 movne r3, #64 @ 0x40 - 8009f1c: f44f 6380 moveq.w r3, #1024 @ 0x400 - 8009f20: 2000 movs r0, #0 - 8009f22: 6031 str r1, [r6, #0] - 8009f24: 602b str r3, [r5, #0] - 8009f26: b016 add sp, #88 @ 0x58 - 8009f28: bd70 pop {r4, r5, r6, pc} - 8009f2a: 466a mov r2, sp - 8009f2c: f000 f848 bl 8009fc0 <_fstat_r> - 8009f30: 2800 cmp r0, #0 - 8009f32: dbec blt.n 8009f0e <__swhatbuf_r+0x12> - 8009f34: 9901 ldr r1, [sp, #4] - 8009f36: f401 4170 and.w r1, r1, #61440 @ 0xf000 - 8009f3a: f5a1 5300 sub.w r3, r1, #8192 @ 0x2000 - 8009f3e: 4259 negs r1, r3 - 8009f40: 4159 adcs r1, r3 - 8009f42: f44f 6380 mov.w r3, #1024 @ 0x400 - 8009f46: e7eb b.n 8009f20 <__swhatbuf_r+0x24> +08005610 <_isatty_r>: + 8005610: b538 push {r3, r4, r5, lr} + 8005612: 4d06 ldr r5, [pc, #24] @ (800562c <_isatty_r+0x1c>) + 8005614: 2300 movs r3, #0 + 8005616: 4604 mov r4, r0 + 8005618: 4608 mov r0, r1 + 800561a: 602b str r3, [r5, #0] + 800561c: f7fb fe57 bl 80012ce <_isatty> + 8005620: 1c43 adds r3, r0, #1 + 8005622: d102 bne.n 800562a <_isatty_r+0x1a> + 8005624: 682b ldr r3, [r5, #0] + 8005626: b103 cbz r3, 800562a <_isatty_r+0x1a> + 8005628: 6023 str r3, [r4, #0] + 800562a: bd38 pop {r3, r4, r5, pc} + 800562c: 2000079c .word 0x2000079c -08009f48 <__smakebuf_r>: - 8009f48: 898b ldrh r3, [r1, #12] - 8009f4a: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - 8009f4c: 079d lsls r5, r3, #30 - 8009f4e: 4606 mov r6, r0 - 8009f50: 460c mov r4, r1 - 8009f52: d507 bpl.n 8009f64 <__smakebuf_r+0x1c> - 8009f54: f104 0347 add.w r3, r4, #71 @ 0x47 - 8009f58: 6023 str r3, [r4, #0] - 8009f5a: 6123 str r3, [r4, #16] - 8009f5c: 2301 movs r3, #1 - 8009f5e: 6163 str r3, [r4, #20] - 8009f60: b003 add sp, #12 - 8009f62: bdf0 pop {r4, r5, r6, r7, pc} - 8009f64: ab01 add r3, sp, #4 - 8009f66: 466a mov r2, sp - 8009f68: f7ff ffc8 bl 8009efc <__swhatbuf_r> - 8009f6c: 9f00 ldr r7, [sp, #0] - 8009f6e: 4605 mov r5, r0 - 8009f70: 4639 mov r1, r7 - 8009f72: 4630 mov r0, r6 - 8009f74: f7fe ff18 bl 8008da8 <_malloc_r> - 8009f78: b948 cbnz r0, 8009f8e <__smakebuf_r+0x46> - 8009f7a: f9b4 300c ldrsh.w r3, [r4, #12] - 8009f7e: 059a lsls r2, r3, #22 - 8009f80: d4ee bmi.n 8009f60 <__smakebuf_r+0x18> - 8009f82: f023 0303 bic.w r3, r3, #3 - 8009f86: f043 0302 orr.w r3, r3, #2 - 8009f8a: 81a3 strh r3, [r4, #12] - 8009f8c: e7e2 b.n 8009f54 <__smakebuf_r+0xc> - 8009f8e: 89a3 ldrh r3, [r4, #12] - 8009f90: 6020 str r0, [r4, #0] - 8009f92: f043 0380 orr.w r3, r3, #128 @ 0x80 - 8009f96: 81a3 strh r3, [r4, #12] - 8009f98: 9b01 ldr r3, [sp, #4] - 8009f9a: e9c4 0704 strd r0, r7, [r4, #16] - 8009f9e: b15b cbz r3, 8009fb8 <__smakebuf_r+0x70> - 8009fa0: f9b4 100e ldrsh.w r1, [r4, #14] - 8009fa4: 4630 mov r0, r6 - 8009fa6: f000 f81d bl 8009fe4 <_isatty_r> - 8009faa: b128 cbz r0, 8009fb8 <__smakebuf_r+0x70> - 8009fac: 89a3 ldrh r3, [r4, #12] - 8009fae: f023 0303 bic.w r3, r3, #3 - 8009fb2: f043 0301 orr.w r3, r3, #1 - 8009fb6: 81a3 strh r3, [r4, #12] - 8009fb8: 89a3 ldrh r3, [r4, #12] - 8009fba: 431d orrs r5, r3 - 8009fbc: 81a5 strh r5, [r4, #12] - 8009fbe: e7cf b.n 8009f60 <__smakebuf_r+0x18> +08005630 <_init>: + 8005630: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005632: bf00 nop + 8005634: bcf8 pop {r3, r4, r5, r6, r7} + 8005636: bc08 pop {r3} + 8005638: 469e mov lr, r3 + 800563a: 4770 bx lr -08009fc0 <_fstat_r>: - 8009fc0: b538 push {r3, r4, r5, lr} - 8009fc2: 4d07 ldr r5, [pc, #28] @ (8009fe0 <_fstat_r+0x20>) - 8009fc4: 2300 movs r3, #0 - 8009fc6: 4604 mov r4, r0 - 8009fc8: 4608 mov r0, r1 - 8009fca: 4611 mov r1, r2 - 8009fcc: 602b str r3, [r5, #0] - 8009fce: f7f9 ff9a bl 8003f06 <_fstat> - 8009fd2: 1c43 adds r3, r0, #1 - 8009fd4: d102 bne.n 8009fdc <_fstat_r+0x1c> - 8009fd6: 682b ldr r3, [r5, #0] - 8009fd8: b103 cbz r3, 8009fdc <_fstat_r+0x1c> - 8009fda: 6023 str r3, [r4, #0] - 8009fdc: bd38 pop {r3, r4, r5, pc} - 8009fde: bf00 nop - 8009fe0: 200004e0 .word 0x200004e0 - -08009fe4 <_isatty_r>: - 8009fe4: b538 push {r3, r4, r5, lr} - 8009fe6: 4d06 ldr r5, [pc, #24] @ (800a000 <_isatty_r+0x1c>) - 8009fe8: 2300 movs r3, #0 - 8009fea: 4604 mov r4, r0 - 8009fec: 4608 mov r0, r1 - 8009fee: 602b str r3, [r5, #0] - 8009ff0: f7f9 ff99 bl 8003f26 <_isatty> - 8009ff4: 1c43 adds r3, r0, #1 - 8009ff6: d102 bne.n 8009ffe <_isatty_r+0x1a> - 8009ff8: 682b ldr r3, [r5, #0] - 8009ffa: b103 cbz r3, 8009ffe <_isatty_r+0x1a> - 8009ffc: 6023 str r3, [r4, #0] - 8009ffe: bd38 pop {r3, r4, r5, pc} - 800a000: 200004e0 .word 0x200004e0 - -0800a004 : - 800a004: b508 push {r3, lr} - 800a006: 2006 movs r0, #6 - 800a008: f000 f834 bl 800a074 - 800a00c: 2001 movs r0, #1 - 800a00e: f7f9 ff2a bl 8003e66 <_exit> - -0800a012 <_malloc_usable_size_r>: - 800a012: f851 3c04 ldr.w r3, [r1, #-4] - 800a016: 1f18 subs r0, r3, #4 - 800a018: 2b00 cmp r3, #0 - 800a01a: bfbc itt lt - 800a01c: 580b ldrlt r3, [r1, r0] - 800a01e: 18c0 addlt r0, r0, r3 - 800a020: 4770 bx lr - -0800a022 <_raise_r>: - 800a022: 291f cmp r1, #31 - 800a024: b538 push {r3, r4, r5, lr} - 800a026: 4605 mov r5, r0 - 800a028: 460c mov r4, r1 - 800a02a: d904 bls.n 800a036 <_raise_r+0x14> - 800a02c: 2316 movs r3, #22 - 800a02e: 6003 str r3, [r0, #0] - 800a030: f04f 30ff mov.w r0, #4294967295 - 800a034: bd38 pop {r3, r4, r5, pc} - 800a036: 6bc2 ldr r2, [r0, #60] @ 0x3c - 800a038: b112 cbz r2, 800a040 <_raise_r+0x1e> - 800a03a: f852 3021 ldr.w r3, [r2, r1, lsl #2] - 800a03e: b94b cbnz r3, 800a054 <_raise_r+0x32> - 800a040: 4628 mov r0, r5 - 800a042: f000 f831 bl 800a0a8 <_getpid_r> - 800a046: 4622 mov r2, r4 - 800a048: 4601 mov r1, r0 - 800a04a: 4628 mov r0, r5 - 800a04c: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 800a050: f000 b818 b.w 800a084 <_kill_r> - 800a054: 2b01 cmp r3, #1 - 800a056: d00a beq.n 800a06e <_raise_r+0x4c> - 800a058: 1c59 adds r1, r3, #1 - 800a05a: d103 bne.n 800a064 <_raise_r+0x42> - 800a05c: 2316 movs r3, #22 - 800a05e: 6003 str r3, [r0, #0] - 800a060: 2001 movs r0, #1 - 800a062: e7e7 b.n 800a034 <_raise_r+0x12> - 800a064: 2100 movs r1, #0 - 800a066: f842 1024 str.w r1, [r2, r4, lsl #2] - 800a06a: 4620 mov r0, r4 - 800a06c: 4798 blx r3 - 800a06e: 2000 movs r0, #0 - 800a070: e7e0 b.n 800a034 <_raise_r+0x12> - ... - -0800a074 : - 800a074: 4b02 ldr r3, [pc, #8] @ (800a080 ) - 800a076: 4601 mov r1, r0 - 800a078: 6818 ldr r0, [r3, #0] - 800a07a: f7ff bfd2 b.w 800a022 <_raise_r> - 800a07e: bf00 nop - 800a080: 20000018 .word 0x20000018 - -0800a084 <_kill_r>: - 800a084: b538 push {r3, r4, r5, lr} - 800a086: 4d07 ldr r5, [pc, #28] @ (800a0a4 <_kill_r+0x20>) - 800a088: 2300 movs r3, #0 - 800a08a: 4604 mov r4, r0 - 800a08c: 4608 mov r0, r1 - 800a08e: 4611 mov r1, r2 - 800a090: 602b str r3, [r5, #0] - 800a092: f7f9 fed8 bl 8003e46 <_kill> - 800a096: 1c43 adds r3, r0, #1 - 800a098: d102 bne.n 800a0a0 <_kill_r+0x1c> - 800a09a: 682b ldr r3, [r5, #0] - 800a09c: b103 cbz r3, 800a0a0 <_kill_r+0x1c> - 800a09e: 6023 str r3, [r4, #0] - 800a0a0: bd38 pop {r3, r4, r5, pc} - 800a0a2: bf00 nop - 800a0a4: 200004e0 .word 0x200004e0 - -0800a0a8 <_getpid_r>: - 800a0a8: f7f9 bec5 b.w 8003e36 <_getpid> - -0800a0ac : - 800a0ac: b508 push {r3, lr} - 800a0ae: ed2d 8b02 vpush {d8} - 800a0b2: eeb0 8a40 vmov.f32 s16, s0 - 800a0b6: f000 f99f bl 800a3f8 <__ieee754_asinf> - 800a0ba: eeb4 8a48 vcmp.f32 s16, s16 - 800a0be: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a0c2: eef0 8a40 vmov.f32 s17, s0 - 800a0c6: d615 bvs.n 800a0f4 - 800a0c8: eeb0 0a48 vmov.f32 s0, s16 - 800a0cc: f000 f892 bl 800a1f4 - 800a0d0: eef7 7a00 vmov.f32 s15, #112 @ 0x3f800000 1.0 - 800a0d4: eeb4 0ae7 vcmpe.f32 s0, s15 - 800a0d8: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a0dc: dd0a ble.n 800a0f4 - 800a0de: f7fd ff69 bl 8007fb4 <__errno> - 800a0e2: ecbd 8b02 vpop {d8} - 800a0e6: 2321 movs r3, #33 @ 0x21 - 800a0e8: 6003 str r3, [r0, #0] - 800a0ea: e8bd 4008 ldmia.w sp!, {r3, lr} - 800a0ee: 4804 ldr r0, [pc, #16] @ (800a100 ) - 800a0f0: f000 b8d8 b.w 800a2a4 - 800a0f4: eeb0 0a68 vmov.f32 s0, s17 - 800a0f8: ecbd 8b02 vpop {d8} - 800a0fc: bd08 pop {r3, pc} - 800a0fe: bf00 nop - 800a100: 0800baf4 .word 0x0800baf4 - -0800a104 : - 800a104: f000 ba5c b.w 800a5c0 <__ieee754_atan2f> - -0800a108 : - 800a108: b508 push {r3, lr} - 800a10a: ed2d 8b04 vpush {d8-d9} - 800a10e: eeb0 8a60 vmov.f32 s16, s1 - 800a112: eeb0 9a40 vmov.f32 s18, s0 - 800a116: f000 faf3 bl 800a700 <__ieee754_powf> - 800a11a: eeb4 8a48 vcmp.f32 s16, s16 - 800a11e: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a122: eef0 8a40 vmov.f32 s17, s0 - 800a126: d63e bvs.n 800a1a6 - 800a128: eeb5 9a40 vcmp.f32 s18, #0.0 - 800a12c: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a130: d112 bne.n 800a158 - 800a132: eeb5 8a40 vcmp.f32 s16, #0.0 - 800a136: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a13a: d039 beq.n 800a1b0 - 800a13c: eeb0 0a48 vmov.f32 s0, s16 - 800a140: f000 f8a6 bl 800a290 - 800a144: b378 cbz r0, 800a1a6 - 800a146: eeb5 8ac0 vcmpe.f32 s16, #0.0 - 800a14a: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a14e: d52a bpl.n 800a1a6 - 800a150: f7fd ff30 bl 8007fb4 <__errno> - 800a154: 2322 movs r3, #34 @ 0x22 - 800a156: e014 b.n 800a182 - 800a158: f000 f89a bl 800a290 - 800a15c: b998 cbnz r0, 800a186 - 800a15e: eeb0 0a49 vmov.f32 s0, s18 - 800a162: f000 f895 bl 800a290 - 800a166: b170 cbz r0, 800a186 - 800a168: eeb0 0a48 vmov.f32 s0, s16 - 800a16c: f000 f890 bl 800a290 - 800a170: b148 cbz r0, 800a186 - 800a172: eef4 8a68 vcmp.f32 s17, s17 - 800a176: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a17a: d7e9 bvc.n 800a150 - 800a17c: f7fd ff1a bl 8007fb4 <__errno> - 800a180: 2321 movs r3, #33 @ 0x21 - 800a182: 6003 str r3, [r0, #0] - 800a184: e00f b.n 800a1a6 - 800a186: eef5 8a40 vcmp.f32 s17, #0.0 - 800a18a: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a18e: d10a bne.n 800a1a6 - 800a190: eeb0 0a49 vmov.f32 s0, s18 - 800a194: f000 f87c bl 800a290 - 800a198: b128 cbz r0, 800a1a6 - 800a19a: eeb0 0a48 vmov.f32 s0, s16 - 800a19e: f000 f877 bl 800a290 - 800a1a2: 2800 cmp r0, #0 - 800a1a4: d1d4 bne.n 800a150 - 800a1a6: eeb0 0a68 vmov.f32 s0, s17 - 800a1aa: ecbd 8b04 vpop {d8-d9} - 800a1ae: bd08 pop {r3, pc} - 800a1b0: eef7 8a00 vmov.f32 s17, #112 @ 0x3f800000 1.0 - 800a1b4: e7f7 b.n 800a1a6 - ... - -0800a1b8 : - 800a1b8: b508 push {r3, lr} - 800a1ba: ed2d 8b02 vpush {d8} - 800a1be: eeb0 8a40 vmov.f32 s16, s0 - 800a1c2: f000 f875 bl 800a2b0 <__ieee754_sqrtf> - 800a1c6: eeb4 8a48 vcmp.f32 s16, s16 - 800a1ca: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a1ce: d60c bvs.n 800a1ea - 800a1d0: eddf 8a07 vldr s17, [pc, #28] @ 800a1f0 - 800a1d4: eeb4 8ae8 vcmpe.f32 s16, s17 - 800a1d8: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a1dc: d505 bpl.n 800a1ea - 800a1de: f7fd fee9 bl 8007fb4 <__errno> - 800a1e2: ee88 0aa8 vdiv.f32 s0, s17, s17 - 800a1e6: 2321 movs r3, #33 @ 0x21 - 800a1e8: 6003 str r3, [r0, #0] - 800a1ea: ecbd 8b02 vpop {d8} - 800a1ee: bd08 pop {r3, pc} - 800a1f0: 00000000 .word 0x00000000 - -0800a1f4 : - 800a1f4: ee10 3a10 vmov r3, s0 - 800a1f8: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 - 800a1fc: ee00 3a10 vmov s0, r3 - 800a200: 4770 bx lr - ... - -0800a204 : - 800a204: ee10 3a10 vmov r3, s0 - 800a208: b507 push {r0, r1, r2, lr} - 800a20a: 4a1f ldr r2, [pc, #124] @ (800a288 ) - 800a20c: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 - 800a210: 4293 cmp r3, r2 - 800a212: d807 bhi.n 800a224 - 800a214: eddf 0a1d vldr s1, [pc, #116] @ 800a28c - 800a218: 2000 movs r0, #0 - 800a21a: b003 add sp, #12 - 800a21c: f85d eb04 ldr.w lr, [sp], #4 - 800a220: f000 b8a2 b.w 800a368 <__kernel_sinf> - 800a224: f1b3 4fff cmp.w r3, #2139095040 @ 0x7f800000 - 800a228: d304 bcc.n 800a234 - 800a22a: ee30 0a40 vsub.f32 s0, s0, s0 - 800a22e: b003 add sp, #12 - 800a230: f85d fb04 ldr.w pc, [sp], #4 - 800a234: 4668 mov r0, sp - 800a236: f000 fd31 bl 800ac9c <__ieee754_rem_pio2f> - 800a23a: f000 0003 and.w r0, r0, #3 - 800a23e: 2801 cmp r0, #1 - 800a240: d00a beq.n 800a258 - 800a242: 2802 cmp r0, #2 - 800a244: d00f beq.n 800a266 - 800a246: b9c0 cbnz r0, 800a27a - 800a248: eddd 0a01 vldr s1, [sp, #4] - 800a24c: ed9d 0a00 vldr s0, [sp] - 800a250: 2001 movs r0, #1 - 800a252: f000 f889 bl 800a368 <__kernel_sinf> - 800a256: e7ea b.n 800a22e - 800a258: eddd 0a01 vldr s1, [sp, #4] - 800a25c: ed9d 0a00 vldr s0, [sp] - 800a260: f000 f82a bl 800a2b8 <__kernel_cosf> - 800a264: e7e3 b.n 800a22e - 800a266: eddd 0a01 vldr s1, [sp, #4] - 800a26a: ed9d 0a00 vldr s0, [sp] - 800a26e: 2001 movs r0, #1 - 800a270: f000 f87a bl 800a368 <__kernel_sinf> - 800a274: eeb1 0a40 vneg.f32 s0, s0 - 800a278: e7d9 b.n 800a22e - 800a27a: eddd 0a01 vldr s1, [sp, #4] - 800a27e: ed9d 0a00 vldr s0, [sp] - 800a282: f000 f819 bl 800a2b8 <__kernel_cosf> - 800a286: e7f5 b.n 800a274 - 800a288: 3f490fd8 .word 0x3f490fd8 - 800a28c: 00000000 .word 0x00000000 - -0800a290 : - 800a290: ee10 3a10 vmov r3, s0 - 800a294: f023 4000 bic.w r0, r3, #2147483648 @ 0x80000000 - 800a298: f1b0 4fff cmp.w r0, #2139095040 @ 0x7f800000 - 800a29c: bfac ite ge - 800a29e: 2000 movge r0, #0 - 800a2a0: 2001 movlt r0, #1 - 800a2a2: 4770 bx lr - -0800a2a4 : - 800a2a4: ed9f 0a01 vldr s0, [pc, #4] @ 800a2ac - 800a2a8: 4770 bx lr - 800a2aa: bf00 nop - 800a2ac: 7fc00000 .word 0x7fc00000 - -0800a2b0 <__ieee754_sqrtf>: - 800a2b0: eeb1 0ac0 vsqrt.f32 s0, s0 - 800a2b4: 4770 bx lr - ... - -0800a2b8 <__kernel_cosf>: - 800a2b8: ee10 3a10 vmov r3, s0 - 800a2bc: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 - 800a2c0: f1b3 5f48 cmp.w r3, #838860800 @ 0x32000000 - 800a2c4: eef0 6a40 vmov.f32 s13, s0 - 800a2c8: eeb7 0a00 vmov.f32 s0, #112 @ 0x3f800000 1.0 - 800a2cc: d204 bcs.n 800a2d8 <__kernel_cosf+0x20> - 800a2ce: eefd 7ae6 vcvt.s32.f32 s15, s13 - 800a2d2: ee17 2a90 vmov r2, s15 - 800a2d6: b342 cbz r2, 800a32a <__kernel_cosf+0x72> - 800a2d8: ee26 7aa6 vmul.f32 s14, s13, s13 - 800a2dc: eddf 7a1a vldr s15, [pc, #104] @ 800a348 <__kernel_cosf+0x90> - 800a2e0: ed9f 6a1a vldr s12, [pc, #104] @ 800a34c <__kernel_cosf+0x94> - 800a2e4: 4a1a ldr r2, [pc, #104] @ (800a350 <__kernel_cosf+0x98>) - 800a2e6: eea7 6a27 vfma.f32 s12, s14, s15 - 800a2ea: 4293 cmp r3, r2 - 800a2ec: eddf 7a19 vldr s15, [pc, #100] @ 800a354 <__kernel_cosf+0x9c> - 800a2f0: eee6 7a07 vfma.f32 s15, s12, s14 - 800a2f4: ed9f 6a18 vldr s12, [pc, #96] @ 800a358 <__kernel_cosf+0xa0> - 800a2f8: eea7 6a87 vfma.f32 s12, s15, s14 - 800a2fc: eddf 7a17 vldr s15, [pc, #92] @ 800a35c <__kernel_cosf+0xa4> - 800a300: eee6 7a07 vfma.f32 s15, s12, s14 - 800a304: ed9f 6a16 vldr s12, [pc, #88] @ 800a360 <__kernel_cosf+0xa8> - 800a308: eea7 6a87 vfma.f32 s12, s15, s14 - 800a30c: ee60 0ae6 vnmul.f32 s1, s1, s13 - 800a310: ee26 6a07 vmul.f32 s12, s12, s14 - 800a314: eef6 7a00 vmov.f32 s15, #96 @ 0x3f000000 0.5 - 800a318: eee7 0a06 vfma.f32 s1, s14, s12 - 800a31c: ee67 7a27 vmul.f32 s15, s14, s15 - 800a320: d804 bhi.n 800a32c <__kernel_cosf+0x74> - 800a322: ee77 7ae0 vsub.f32 s15, s15, s1 - 800a326: ee30 0a67 vsub.f32 s0, s0, s15 - 800a32a: 4770 bx lr - 800a32c: 4a0d ldr r2, [pc, #52] @ (800a364 <__kernel_cosf+0xac>) - 800a32e: 4293 cmp r3, r2 - 800a330: bf9a itte ls - 800a332: f103 437f addls.w r3, r3, #4278190080 @ 0xff000000 - 800a336: ee07 3a10 vmovls s14, r3 - 800a33a: eeb5 7a02 vmovhi.f32 s14, #82 @ 0x3e900000 0.2812500 - 800a33e: ee30 0a47 vsub.f32 s0, s0, s14 - 800a342: ee77 7ac7 vsub.f32 s15, s15, s14 - 800a346: e7ec b.n 800a322 <__kernel_cosf+0x6a> - 800a348: ad47d74e .word 0xad47d74e - 800a34c: 310f74f6 .word 0x310f74f6 - 800a350: 3e999999 .word 0x3e999999 - 800a354: b493f27c .word 0xb493f27c - 800a358: 37d00d01 .word 0x37d00d01 - 800a35c: bab60b61 .word 0xbab60b61 - 800a360: 3d2aaaab .word 0x3d2aaaab - 800a364: 3f480000 .word 0x3f480000 - -0800a368 <__kernel_sinf>: - 800a368: ee10 3a10 vmov r3, s0 - 800a36c: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 - 800a370: f1b3 5f48 cmp.w r3, #838860800 @ 0x32000000 - 800a374: d204 bcs.n 800a380 <__kernel_sinf+0x18> - 800a376: eefd 7ac0 vcvt.s32.f32 s15, s0 - 800a37a: ee17 3a90 vmov r3, s15 - 800a37e: b35b cbz r3, 800a3d8 <__kernel_sinf+0x70> - 800a380: ee20 7a00 vmul.f32 s14, s0, s0 - 800a384: eddf 7a15 vldr s15, [pc, #84] @ 800a3dc <__kernel_sinf+0x74> - 800a388: ed9f 6a15 vldr s12, [pc, #84] @ 800a3e0 <__kernel_sinf+0x78> - 800a38c: eea7 6a27 vfma.f32 s12, s14, s15 - 800a390: eddf 7a14 vldr s15, [pc, #80] @ 800a3e4 <__kernel_sinf+0x7c> - 800a394: eee6 7a07 vfma.f32 s15, s12, s14 - 800a398: ed9f 6a13 vldr s12, [pc, #76] @ 800a3e8 <__kernel_sinf+0x80> - 800a39c: eea7 6a87 vfma.f32 s12, s15, s14 - 800a3a0: eddf 7a12 vldr s15, [pc, #72] @ 800a3ec <__kernel_sinf+0x84> - 800a3a4: ee60 6a07 vmul.f32 s13, s0, s14 - 800a3a8: eee6 7a07 vfma.f32 s15, s12, s14 - 800a3ac: b930 cbnz r0, 800a3bc <__kernel_sinf+0x54> - 800a3ae: ed9f 6a10 vldr s12, [pc, #64] @ 800a3f0 <__kernel_sinf+0x88> - 800a3b2: eea7 6a27 vfma.f32 s12, s14, s15 - 800a3b6: eea6 0a26 vfma.f32 s0, s12, s13 - 800a3ba: 4770 bx lr - 800a3bc: ee67 7ae6 vnmul.f32 s15, s15, s13 - 800a3c0: eeb6 6a00 vmov.f32 s12, #96 @ 0x3f000000 0.5 - 800a3c4: eee0 7a86 vfma.f32 s15, s1, s12 - 800a3c8: eed7 0a87 vfnms.f32 s1, s15, s14 - 800a3cc: eddf 7a09 vldr s15, [pc, #36] @ 800a3f4 <__kernel_sinf+0x8c> - 800a3d0: eee6 0aa7 vfma.f32 s1, s13, s15 - 800a3d4: ee30 0a60 vsub.f32 s0, s0, s1 - 800a3d8: 4770 bx lr - 800a3da: bf00 nop - 800a3dc: 2f2ec9d3 .word 0x2f2ec9d3 - 800a3e0: b2d72f34 .word 0xb2d72f34 - 800a3e4: 3638ef1b .word 0x3638ef1b - 800a3e8: b9500d01 .word 0xb9500d01 - 800a3ec: 3c088889 .word 0x3c088889 - 800a3f0: be2aaaab .word 0xbe2aaaab - 800a3f4: 3e2aaaab .word 0x3e2aaaab - -0800a3f8 <__ieee754_asinf>: - 800a3f8: b538 push {r3, r4, r5, lr} - 800a3fa: ee10 5a10 vmov r5, s0 - 800a3fe: f025 4400 bic.w r4, r5, #2147483648 @ 0x80000000 - 800a402: f1b4 5f7e cmp.w r4, #1065353216 @ 0x3f800000 - 800a406: ed2d 8b04 vpush {d8-d9} - 800a40a: d10c bne.n 800a426 <__ieee754_asinf+0x2e> - 800a40c: eddf 7a5c vldr s15, [pc, #368] @ 800a580 <__ieee754_asinf+0x188> - 800a410: ed9f 7a5c vldr s14, [pc, #368] @ 800a584 <__ieee754_asinf+0x18c> - 800a414: ee60 7a27 vmul.f32 s15, s0, s15 - 800a418: eee0 7a07 vfma.f32 s15, s0, s14 - 800a41c: eeb0 0a67 vmov.f32 s0, s15 - 800a420: ecbd 8b04 vpop {d8-d9} - 800a424: bd38 pop {r3, r4, r5, pc} - 800a426: d904 bls.n 800a432 <__ieee754_asinf+0x3a> - 800a428: ee70 7a40 vsub.f32 s15, s0, s0 - 800a42c: ee87 0aa7 vdiv.f32 s0, s15, s15 - 800a430: e7f6 b.n 800a420 <__ieee754_asinf+0x28> - 800a432: f1b4 5f7c cmp.w r4, #1056964608 @ 0x3f000000 - 800a436: eef7 8a00 vmov.f32 s17, #112 @ 0x3f800000 1.0 - 800a43a: d20b bcs.n 800a454 <__ieee754_asinf+0x5c> - 800a43c: f1b4 5f48 cmp.w r4, #838860800 @ 0x32000000 - 800a440: d252 bcs.n 800a4e8 <__ieee754_asinf+0xf0> - 800a442: eddf 7a51 vldr s15, [pc, #324] @ 800a588 <__ieee754_asinf+0x190> - 800a446: ee70 7a27 vadd.f32 s15, s0, s15 - 800a44a: eef4 7ae8 vcmpe.f32 s15, s17 - 800a44e: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a452: dce5 bgt.n 800a420 <__ieee754_asinf+0x28> - 800a454: f7ff fece bl 800a1f4 - 800a458: ee38 8ac0 vsub.f32 s16, s17, s0 - 800a45c: eef6 7a00 vmov.f32 s15, #96 @ 0x3f000000 0.5 - 800a460: ee28 8a27 vmul.f32 s16, s16, s15 - 800a464: ed9f 7a49 vldr s14, [pc, #292] @ 800a58c <__ieee754_asinf+0x194> - 800a468: eddf 7a49 vldr s15, [pc, #292] @ 800a590 <__ieee754_asinf+0x198> - 800a46c: ed9f 9a49 vldr s18, [pc, #292] @ 800a594 <__ieee754_asinf+0x19c> - 800a470: eea8 7a27 vfma.f32 s14, s16, s15 - 800a474: eddf 7a48 vldr s15, [pc, #288] @ 800a598 <__ieee754_asinf+0x1a0> - 800a478: eee7 7a08 vfma.f32 s15, s14, s16 - 800a47c: ed9f 7a47 vldr s14, [pc, #284] @ 800a59c <__ieee754_asinf+0x1a4> - 800a480: eea7 7a88 vfma.f32 s14, s15, s16 - 800a484: eddf 7a46 vldr s15, [pc, #280] @ 800a5a0 <__ieee754_asinf+0x1a8> - 800a488: eee7 7a08 vfma.f32 s15, s14, s16 - 800a48c: ed9f 7a45 vldr s14, [pc, #276] @ 800a5a4 <__ieee754_asinf+0x1ac> - 800a490: eea7 9a88 vfma.f32 s18, s15, s16 - 800a494: eddf 7a44 vldr s15, [pc, #272] @ 800a5a8 <__ieee754_asinf+0x1b0> - 800a498: eee8 7a07 vfma.f32 s15, s16, s14 - 800a49c: ed9f 7a43 vldr s14, [pc, #268] @ 800a5ac <__ieee754_asinf+0x1b4> - 800a4a0: eea7 7a88 vfma.f32 s14, s15, s16 - 800a4a4: eddf 7a42 vldr s15, [pc, #264] @ 800a5b0 <__ieee754_asinf+0x1b8> - 800a4a8: eee7 7a08 vfma.f32 s15, s14, s16 - 800a4ac: eeb0 0a48 vmov.f32 s0, s16 - 800a4b0: eee7 8a88 vfma.f32 s17, s15, s16 - 800a4b4: f7ff fefc bl 800a2b0 <__ieee754_sqrtf> - 800a4b8: 4b3e ldr r3, [pc, #248] @ (800a5b4 <__ieee754_asinf+0x1bc>) - 800a4ba: ee29 9a08 vmul.f32 s18, s18, s16 - 800a4be: 429c cmp r4, r3 - 800a4c0: ee89 6a28 vdiv.f32 s12, s18, s17 - 800a4c4: eef0 6a00 vmov.f32 s13, #0 @ 0x40000000 2.0 - 800a4c8: d93d bls.n 800a546 <__ieee754_asinf+0x14e> - 800a4ca: eea0 0a06 vfma.f32 s0, s0, s12 - 800a4ce: eddf 7a3a vldr s15, [pc, #232] @ 800a5b8 <__ieee754_asinf+0x1c0> - 800a4d2: eee0 7a26 vfma.f32 s15, s0, s13 - 800a4d6: ed9f 0a2b vldr s0, [pc, #172] @ 800a584 <__ieee754_asinf+0x18c> - 800a4da: ee30 0a67 vsub.f32 s0, s0, s15 - 800a4de: 2d00 cmp r5, #0 - 800a4e0: bfd8 it le - 800a4e2: eeb1 0a40 vnegle.f32 s0, s0 - 800a4e6: e79b b.n 800a420 <__ieee754_asinf+0x28> - 800a4e8: ee60 7a00 vmul.f32 s15, s0, s0 - 800a4ec: eddf 6a28 vldr s13, [pc, #160] @ 800a590 <__ieee754_asinf+0x198> - 800a4f0: ed9f 7a26 vldr s14, [pc, #152] @ 800a58c <__ieee754_asinf+0x194> - 800a4f4: ed9f 6a2b vldr s12, [pc, #172] @ 800a5a4 <__ieee754_asinf+0x1ac> - 800a4f8: eea7 7aa6 vfma.f32 s14, s15, s13 - 800a4fc: eddf 6a26 vldr s13, [pc, #152] @ 800a598 <__ieee754_asinf+0x1a0> - 800a500: eee7 6a27 vfma.f32 s13, s14, s15 - 800a504: ed9f 7a25 vldr s14, [pc, #148] @ 800a59c <__ieee754_asinf+0x1a4> - 800a508: eea6 7aa7 vfma.f32 s14, s13, s15 - 800a50c: eddf 6a24 vldr s13, [pc, #144] @ 800a5a0 <__ieee754_asinf+0x1a8> - 800a510: eee7 6a27 vfma.f32 s13, s14, s15 - 800a514: ed9f 7a1f vldr s14, [pc, #124] @ 800a594 <__ieee754_asinf+0x19c> - 800a518: eea6 7aa7 vfma.f32 s14, s13, s15 - 800a51c: eddf 6a22 vldr s13, [pc, #136] @ 800a5a8 <__ieee754_asinf+0x1b0> - 800a520: eee7 6a86 vfma.f32 s13, s15, s12 - 800a524: ed9f 6a21 vldr s12, [pc, #132] @ 800a5ac <__ieee754_asinf+0x1b4> - 800a528: eea6 6aa7 vfma.f32 s12, s13, s15 - 800a52c: eddf 6a20 vldr s13, [pc, #128] @ 800a5b0 <__ieee754_asinf+0x1b8> - 800a530: eee6 6a27 vfma.f32 s13, s12, s15 - 800a534: ee27 7a27 vmul.f32 s14, s14, s15 - 800a538: eee6 8aa7 vfma.f32 s17, s13, s15 - 800a53c: eec7 7a28 vdiv.f32 s15, s14, s17 - 800a540: eea0 0a27 vfma.f32 s0, s0, s15 - 800a544: e76c b.n 800a420 <__ieee754_asinf+0x28> - 800a546: ee10 3a10 vmov r3, s0 - 800a54a: f36f 030b bfc r3, #0, #12 - 800a54e: ee07 3a10 vmov s14, r3 - 800a552: eea7 8a47 vfms.f32 s16, s14, s14 - 800a556: ee70 5a00 vadd.f32 s11, s0, s0 - 800a55a: ee30 0a07 vadd.f32 s0, s0, s14 - 800a55e: eddf 7a08 vldr s15, [pc, #32] @ 800a580 <__ieee754_asinf+0x188> - 800a562: ee88 5a00 vdiv.f32 s10, s16, s0 - 800a566: ed9f 0a15 vldr s0, [pc, #84] @ 800a5bc <__ieee754_asinf+0x1c4> - 800a56a: eee5 7a66 vfms.f32 s15, s10, s13 - 800a56e: eed5 7a86 vfnms.f32 s15, s11, s12 - 800a572: eeb0 6a40 vmov.f32 s12, s0 - 800a576: eea7 6a66 vfms.f32 s12, s14, s13 - 800a57a: ee77 7ac6 vsub.f32 s15, s15, s12 - 800a57e: e7ac b.n 800a4da <__ieee754_asinf+0xe2> - 800a580: b33bbd2e .word 0xb33bbd2e - 800a584: 3fc90fdb .word 0x3fc90fdb - 800a588: 7149f2ca .word 0x7149f2ca - 800a58c: 3a4f7f04 .word 0x3a4f7f04 - 800a590: 3811ef08 .word 0x3811ef08 - 800a594: 3e2aaaab .word 0x3e2aaaab - 800a598: bd241146 .word 0xbd241146 - 800a59c: 3e4e0aa8 .word 0x3e4e0aa8 - 800a5a0: bea6b090 .word 0xbea6b090 - 800a5a4: 3d9dc62e .word 0x3d9dc62e - 800a5a8: bf303361 .word 0xbf303361 - 800a5ac: 4001572d .word 0x4001572d - 800a5b0: c019d139 .word 0xc019d139 - 800a5b4: 3f799999 .word 0x3f799999 - 800a5b8: 333bbd2e .word 0x333bbd2e - 800a5bc: 3f490fdb .word 0x3f490fdb - -0800a5c0 <__ieee754_atan2f>: - 800a5c0: ee10 2a90 vmov r2, s1 - 800a5c4: f022 4100 bic.w r1, r2, #2147483648 @ 0x80000000 - 800a5c8: f1b1 4fff cmp.w r1, #2139095040 @ 0x7f800000 - 800a5cc: b510 push {r4, lr} - 800a5ce: eef0 7a40 vmov.f32 s15, s0 - 800a5d2: d806 bhi.n 800a5e2 <__ieee754_atan2f+0x22> - 800a5d4: ee10 0a10 vmov r0, s0 - 800a5d8: f020 4300 bic.w r3, r0, #2147483648 @ 0x80000000 - 800a5dc: f1b3 4fff cmp.w r3, #2139095040 @ 0x7f800000 - 800a5e0: d904 bls.n 800a5ec <__ieee754_atan2f+0x2c> - 800a5e2: ee77 7aa0 vadd.f32 s15, s15, s1 - 800a5e6: eeb0 0a67 vmov.f32 s0, s15 - 800a5ea: bd10 pop {r4, pc} - 800a5ec: f1b2 5f7e cmp.w r2, #1065353216 @ 0x3f800000 - 800a5f0: d103 bne.n 800a5fa <__ieee754_atan2f+0x3a> - 800a5f2: e8bd 4010 ldmia.w sp!, {r4, lr} - 800a5f6: f000 bc81 b.w 800aefc - 800a5fa: 1794 asrs r4, r2, #30 - 800a5fc: f004 0402 and.w r4, r4, #2 - 800a600: ea44 74d0 orr.w r4, r4, r0, lsr #31 - 800a604: b943 cbnz r3, 800a618 <__ieee754_atan2f+0x58> - 800a606: 2c02 cmp r4, #2 - 800a608: d05e beq.n 800a6c8 <__ieee754_atan2f+0x108> - 800a60a: ed9f 7a34 vldr s14, [pc, #208] @ 800a6dc <__ieee754_atan2f+0x11c> - 800a60e: 2c03 cmp r4, #3 - 800a610: bf08 it eq - 800a612: eef0 7a47 vmoveq.f32 s15, s14 - 800a616: e7e6 b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a618: b941 cbnz r1, 800a62c <__ieee754_atan2f+0x6c> - 800a61a: eddf 7a31 vldr s15, [pc, #196] @ 800a6e0 <__ieee754_atan2f+0x120> - 800a61e: ed9f 7a31 vldr s14, [pc, #196] @ 800a6e4 <__ieee754_atan2f+0x124> - 800a622: 2800 cmp r0, #0 - 800a624: bfa8 it ge - 800a626: eef0 7a47 vmovge.f32 s15, s14 - 800a62a: e7dc b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a62c: f1b1 4fff cmp.w r1, #2139095040 @ 0x7f800000 - 800a630: d110 bne.n 800a654 <__ieee754_atan2f+0x94> - 800a632: f1b3 4fff cmp.w r3, #2139095040 @ 0x7f800000 - 800a636: f104 34ff add.w r4, r4, #4294967295 - 800a63a: d107 bne.n 800a64c <__ieee754_atan2f+0x8c> - 800a63c: 2c02 cmp r4, #2 - 800a63e: d846 bhi.n 800a6ce <__ieee754_atan2f+0x10e> - 800a640: 4b29 ldr r3, [pc, #164] @ (800a6e8 <__ieee754_atan2f+0x128>) - 800a642: eb03 0384 add.w r3, r3, r4, lsl #2 - 800a646: edd3 7a00 vldr s15, [r3] - 800a64a: e7cc b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a64c: 2c02 cmp r4, #2 - 800a64e: d841 bhi.n 800a6d4 <__ieee754_atan2f+0x114> - 800a650: 4b26 ldr r3, [pc, #152] @ (800a6ec <__ieee754_atan2f+0x12c>) - 800a652: e7f6 b.n 800a642 <__ieee754_atan2f+0x82> - 800a654: f1b3 4fff cmp.w r3, #2139095040 @ 0x7f800000 - 800a658: d0df beq.n 800a61a <__ieee754_atan2f+0x5a> - 800a65a: 1a5b subs r3, r3, r1 - 800a65c: f1b3 5ff4 cmp.w r3, #511705088 @ 0x1e800000 - 800a660: ea4f 51e3 mov.w r1, r3, asr #23 - 800a664: da1a bge.n 800a69c <__ieee754_atan2f+0xdc> - 800a666: 2a00 cmp r2, #0 - 800a668: da01 bge.n 800a66e <__ieee754_atan2f+0xae> - 800a66a: 313c adds r1, #60 @ 0x3c - 800a66c: db19 blt.n 800a6a2 <__ieee754_atan2f+0xe2> - 800a66e: ee87 0aa0 vdiv.f32 s0, s15, s1 - 800a672: f7ff fdbf bl 800a1f4 - 800a676: f000 fc41 bl 800aefc - 800a67a: eef0 7a40 vmov.f32 s15, s0 - 800a67e: 2c01 cmp r4, #1 - 800a680: d012 beq.n 800a6a8 <__ieee754_atan2f+0xe8> - 800a682: 2c02 cmp r4, #2 - 800a684: d017 beq.n 800a6b6 <__ieee754_atan2f+0xf6> - 800a686: 2c00 cmp r4, #0 - 800a688: d0ad beq.n 800a5e6 <__ieee754_atan2f+0x26> - 800a68a: ed9f 7a19 vldr s14, [pc, #100] @ 800a6f0 <__ieee754_atan2f+0x130> - 800a68e: ee77 7a87 vadd.f32 s15, s15, s14 - 800a692: ed9f 7a18 vldr s14, [pc, #96] @ 800a6f4 <__ieee754_atan2f+0x134> - 800a696: ee77 7ac7 vsub.f32 s15, s15, s14 - 800a69a: e7a4 b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a69c: eddf 7a11 vldr s15, [pc, #68] @ 800a6e4 <__ieee754_atan2f+0x124> - 800a6a0: e7ed b.n 800a67e <__ieee754_atan2f+0xbe> - 800a6a2: eddf 7a15 vldr s15, [pc, #84] @ 800a6f8 <__ieee754_atan2f+0x138> - 800a6a6: e7ea b.n 800a67e <__ieee754_atan2f+0xbe> - 800a6a8: ee17 3a90 vmov r3, s15 - 800a6ac: f103 4300 add.w r3, r3, #2147483648 @ 0x80000000 - 800a6b0: ee07 3a90 vmov s15, r3 - 800a6b4: e797 b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a6b6: ed9f 7a0e vldr s14, [pc, #56] @ 800a6f0 <__ieee754_atan2f+0x130> - 800a6ba: ee77 7a87 vadd.f32 s15, s15, s14 - 800a6be: ed9f 7a0d vldr s14, [pc, #52] @ 800a6f4 <__ieee754_atan2f+0x134> - 800a6c2: ee77 7a67 vsub.f32 s15, s14, s15 - 800a6c6: e78e b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a6c8: eddf 7a0a vldr s15, [pc, #40] @ 800a6f4 <__ieee754_atan2f+0x134> - 800a6cc: e78b b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a6ce: eddf 7a0b vldr s15, [pc, #44] @ 800a6fc <__ieee754_atan2f+0x13c> - 800a6d2: e788 b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a6d4: eddf 7a08 vldr s15, [pc, #32] @ 800a6f8 <__ieee754_atan2f+0x138> - 800a6d8: e785 b.n 800a5e6 <__ieee754_atan2f+0x26> - 800a6da: bf00 nop - 800a6dc: c0490fdb .word 0xc0490fdb - 800a6e0: bfc90fdb .word 0xbfc90fdb - 800a6e4: 3fc90fdb .word 0x3fc90fdb - 800a6e8: 0800bd08 .word 0x0800bd08 - 800a6ec: 0800bcfc .word 0x0800bcfc - 800a6f0: 33bbbd2e .word 0x33bbbd2e - 800a6f4: 40490fdb .word 0x40490fdb - 800a6f8: 00000000 .word 0x00000000 - 800a6fc: 3f490fdb .word 0x3f490fdb - -0800a700 <__ieee754_powf>: - 800a700: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 800a704: ee10 4a90 vmov r4, s1 - 800a708: f034 4900 bics.w r9, r4, #2147483648 @ 0x80000000 - 800a70c: ed2d 8b02 vpush {d8} - 800a710: ee10 6a10 vmov r6, s0 - 800a714: eeb0 8a40 vmov.f32 s16, s0 - 800a718: eef0 8a60 vmov.f32 s17, s1 - 800a71c: d10c bne.n 800a738 <__ieee754_powf+0x38> - 800a71e: f486 0680 eor.w r6, r6, #4194304 @ 0x400000 - 800a722: 0076 lsls r6, r6, #1 - 800a724: f516 0f00 cmn.w r6, #8388608 @ 0x800000 - 800a728: f240 8274 bls.w 800ac14 <__ieee754_powf+0x514> - 800a72c: ee38 0a28 vadd.f32 s0, s16, s17 - 800a730: ecbd 8b02 vpop {d8} - 800a734: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 800a738: f026 4800 bic.w r8, r6, #2147483648 @ 0x80000000 - 800a73c: f1b8 4fff cmp.w r8, #2139095040 @ 0x7f800000 - 800a740: d802 bhi.n 800a748 <__ieee754_powf+0x48> - 800a742: f1b9 4fff cmp.w r9, #2139095040 @ 0x7f800000 - 800a746: d908 bls.n 800a75a <__ieee754_powf+0x5a> - 800a748: f1b6 5f7e cmp.w r6, #1065353216 @ 0x3f800000 - 800a74c: d1ee bne.n 800a72c <__ieee754_powf+0x2c> - 800a74e: f484 0480 eor.w r4, r4, #4194304 @ 0x400000 - 800a752: 0064 lsls r4, r4, #1 - 800a754: f514 0f00 cmn.w r4, #8388608 @ 0x800000 - 800a758: e7e6 b.n 800a728 <__ieee754_powf+0x28> - 800a75a: 2e00 cmp r6, #0 - 800a75c: da1f bge.n 800a79e <__ieee754_powf+0x9e> - 800a75e: f1b9 4f97 cmp.w r9, #1266679808 @ 0x4b800000 - 800a762: f080 8260 bcs.w 800ac26 <__ieee754_powf+0x526> - 800a766: f1b9 5f7e cmp.w r9, #1065353216 @ 0x3f800000 - 800a76a: d32f bcc.n 800a7cc <__ieee754_powf+0xcc> - 800a76c: ea4f 53e9 mov.w r3, r9, asr #23 - 800a770: f1c3 0396 rsb r3, r3, #150 @ 0x96 - 800a774: fa49 f503 asr.w r5, r9, r3 - 800a778: fa05 f303 lsl.w r3, r5, r3 - 800a77c: 454b cmp r3, r9 - 800a77e: d123 bne.n 800a7c8 <__ieee754_powf+0xc8> - 800a780: f005 0501 and.w r5, r5, #1 - 800a784: f1c5 0502 rsb r5, r5, #2 - 800a788: f1b9 5f7e cmp.w r9, #1065353216 @ 0x3f800000 - 800a78c: d11f bne.n 800a7ce <__ieee754_powf+0xce> - 800a78e: 2c00 cmp r4, #0 - 800a790: f280 8246 bge.w 800ac20 <__ieee754_powf+0x520> - 800a794: eef7 7a00 vmov.f32 s15, #112 @ 0x3f800000 1.0 - 800a798: ee87 0a88 vdiv.f32 s0, s15, s16 - 800a79c: e7c8 b.n 800a730 <__ieee754_powf+0x30> - 800a79e: f1b9 4fff cmp.w r9, #2139095040 @ 0x7f800000 - 800a7a2: d111 bne.n 800a7c8 <__ieee754_powf+0xc8> - 800a7a4: f1b8 5f7e cmp.w r8, #1065353216 @ 0x3f800000 - 800a7a8: f000 8234 beq.w 800ac14 <__ieee754_powf+0x514> - 800a7ac: d906 bls.n 800a7bc <__ieee754_powf+0xbc> - 800a7ae: ed9f 0ac5 vldr s0, [pc, #788] @ 800aac4 <__ieee754_powf+0x3c4> - 800a7b2: 2c00 cmp r4, #0 - 800a7b4: bfa8 it ge - 800a7b6: eeb0 0a68 vmovge.f32 s0, s17 - 800a7ba: e7b9 b.n 800a730 <__ieee754_powf+0x30> - 800a7bc: 2c00 cmp r4, #0 - 800a7be: f280 822c bge.w 800ac1a <__ieee754_powf+0x51a> - 800a7c2: eeb1 0a68 vneg.f32 s0, s17 - 800a7c6: e7b3 b.n 800a730 <__ieee754_powf+0x30> - 800a7c8: 2500 movs r5, #0 - 800a7ca: e7dd b.n 800a788 <__ieee754_powf+0x88> - 800a7cc: 2500 movs r5, #0 - 800a7ce: f1b4 4f80 cmp.w r4, #1073741824 @ 0x40000000 - 800a7d2: d102 bne.n 800a7da <__ieee754_powf+0xda> - 800a7d4: ee28 0a08 vmul.f32 s0, s16, s16 - 800a7d8: e7aa b.n 800a730 <__ieee754_powf+0x30> - 800a7da: f1b4 5f7c cmp.w r4, #1056964608 @ 0x3f000000 - 800a7de: f040 8227 bne.w 800ac30 <__ieee754_powf+0x530> - 800a7e2: 2e00 cmp r6, #0 - 800a7e4: f2c0 8224 blt.w 800ac30 <__ieee754_powf+0x530> - 800a7e8: eeb0 0a48 vmov.f32 s0, s16 - 800a7ec: ecbd 8b02 vpop {d8} - 800a7f0: e8bd 43f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 800a7f4: f7ff bd5c b.w 800a2b0 <__ieee754_sqrtf> - 800a7f8: 2d01 cmp r5, #1 - 800a7fa: d199 bne.n 800a730 <__ieee754_powf+0x30> - 800a7fc: eeb1 0a40 vneg.f32 s0, s0 - 800a800: e796 b.n 800a730 <__ieee754_powf+0x30> - 800a802: 0ff0 lsrs r0, r6, #31 - 800a804: 3801 subs r0, #1 - 800a806: ea55 0300 orrs.w r3, r5, r0 - 800a80a: d104 bne.n 800a816 <__ieee754_powf+0x116> - 800a80c: ee38 8a48 vsub.f32 s16, s16, s16 - 800a810: ee88 0a08 vdiv.f32 s0, s16, s16 - 800a814: e78c b.n 800a730 <__ieee754_powf+0x30> - 800a816: f1b9 4f9a cmp.w r9, #1291845632 @ 0x4d000000 - 800a81a: d96d bls.n 800a8f8 <__ieee754_powf+0x1f8> - 800a81c: 4baa ldr r3, [pc, #680] @ (800aac8 <__ieee754_powf+0x3c8>) - 800a81e: 4598 cmp r8, r3 - 800a820: d808 bhi.n 800a834 <__ieee754_powf+0x134> - 800a822: 2c00 cmp r4, #0 - 800a824: da0b bge.n 800a83e <__ieee754_powf+0x13e> - 800a826: 2000 movs r0, #0 - 800a828: ecbd 8b02 vpop {d8} - 800a82c: e8bd 43f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 800a830: f000 bcbe b.w 800b1b0 <__math_oflowf> - 800a834: 4ba5 ldr r3, [pc, #660] @ (800aacc <__ieee754_powf+0x3cc>) - 800a836: 4598 cmp r8, r3 - 800a838: d908 bls.n 800a84c <__ieee754_powf+0x14c> - 800a83a: 2c00 cmp r4, #0 - 800a83c: dcf3 bgt.n 800a826 <__ieee754_powf+0x126> - 800a83e: 2000 movs r0, #0 - 800a840: ecbd 8b02 vpop {d8} - 800a844: e8bd 43f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 800a848: f000 bcac b.w 800b1a4 <__math_uflowf> - 800a84c: eef7 7a00 vmov.f32 s15, #112 @ 0x3f800000 1.0 - 800a850: ee30 0a67 vsub.f32 s0, s0, s15 - 800a854: eddf 6a9e vldr s13, [pc, #632] @ 800aad0 <__ieee754_powf+0x3d0> - 800a858: eef5 7a00 vmov.f32 s15, #80 @ 0x3e800000 0.250 - 800a85c: eee0 6a67 vfms.f32 s13, s0, s15 - 800a860: eef6 7a00 vmov.f32 s15, #96 @ 0x3f000000 0.5 - 800a864: eee6 7ac0 vfms.f32 s15, s13, s0 - 800a868: ee20 7a00 vmul.f32 s14, s0, s0 - 800a86c: eddf 6a99 vldr s13, [pc, #612] @ 800aad4 <__ieee754_powf+0x3d4> - 800a870: ee27 7a27 vmul.f32 s14, s14, s15 - 800a874: eddf 7a98 vldr s15, [pc, #608] @ 800aad8 <__ieee754_powf+0x3d8> - 800a878: ee67 7ac7 vnmul.f32 s15, s15, s14 - 800a87c: ed9f 7a97 vldr s14, [pc, #604] @ 800aadc <__ieee754_powf+0x3dc> - 800a880: eee0 7a07 vfma.f32 s15, s0, s14 - 800a884: eeb0 7a67 vmov.f32 s14, s15 - 800a888: eea0 7a26 vfma.f32 s14, s0, s13 - 800a88c: ee17 3a10 vmov r3, s14 - 800a890: f36f 030b bfc r3, #0, #12 - 800a894: ee07 3a10 vmov s14, r3 - 800a898: eeb0 6a47 vmov.f32 s12, s14 - 800a89c: eea0 6a66 vfms.f32 s12, s0, s13 - 800a8a0: ee77 7ac6 vsub.f32 s15, s15, s12 - 800a8a4: 3d01 subs r5, #1 - 800a8a6: 4305 orrs r5, r0 - 800a8a8: eef7 6a00 vmov.f32 s13, #112 @ 0x3f800000 1.0 - 800a8ac: eebf 8a00 vmov.f32 s16, #240 @ 0xbf800000 -1.0 - 800a8b0: f36f 040b bfc r4, #0, #12 - 800a8b4: bf18 it ne - 800a8b6: eeb0 8a66 vmovne.f32 s16, s13 - 800a8ba: ee06 4a90 vmov s13, r4 - 800a8be: ee67 0aa8 vmul.f32 s1, s15, s17 - 800a8c2: ee38 6ae6 vsub.f32 s12, s17, s13 - 800a8c6: ee67 7a26 vmul.f32 s15, s14, s13 - 800a8ca: eee6 0a07 vfma.f32 s1, s12, s14 - 800a8ce: ee30 7aa7 vadd.f32 s14, s1, s15 - 800a8d2: ee17 1a10 vmov r1, s14 - 800a8d6: 2900 cmp r1, #0 - 800a8d8: f021 4300 bic.w r3, r1, #2147483648 @ 0x80000000 - 800a8dc: f340 80dd ble.w 800aa9a <__ieee754_powf+0x39a> - 800a8e0: f1b3 4f86 cmp.w r3, #1124073472 @ 0x43000000 - 800a8e4: f240 80ca bls.w 800aa7c <__ieee754_powf+0x37c> - 800a8e8: eeb5 8ac0 vcmpe.f32 s16, #0.0 - 800a8ec: eef1 fa10 vmrs APSR_nzcv, fpscr - 800a8f0: bf4c ite mi - 800a8f2: 2001 movmi r0, #1 - 800a8f4: 2000 movpl r0, #0 - 800a8f6: e797 b.n 800a828 <__ieee754_powf+0x128> - 800a8f8: f016 4fff tst.w r6, #2139095040 @ 0x7f800000 - 800a8fc: bf01 itttt eq - 800a8fe: eddf 7a78 vldreq s15, [pc, #480] @ 800aae0 <__ieee754_powf+0x3e0> - 800a902: ee60 7a27 vmuleq.f32 s15, s0, s15 - 800a906: f06f 0317 mvneq.w r3, #23 - 800a90a: ee17 7a90 vmoveq r7, s15 - 800a90e: ea4f 52e7 mov.w r2, r7, asr #23 - 800a912: bf18 it ne - 800a914: 2300 movne r3, #0 - 800a916: 3a7f subs r2, #127 @ 0x7f - 800a918: 441a add r2, r3 - 800a91a: 4b72 ldr r3, [pc, #456] @ (800aae4 <__ieee754_powf+0x3e4>) - 800a91c: f3c7 0716 ubfx r7, r7, #0, #23 - 800a920: 429f cmp r7, r3 - 800a922: f047 517e orr.w r1, r7, #1065353216 @ 0x3f800000 - 800a926: dd06 ble.n 800a936 <__ieee754_powf+0x236> - 800a928: 4b6f ldr r3, [pc, #444] @ (800aae8 <__ieee754_powf+0x3e8>) - 800a92a: 429f cmp r7, r3 - 800a92c: f340 80a4 ble.w 800aa78 <__ieee754_powf+0x378> - 800a930: 3201 adds r2, #1 - 800a932: f5a1 0100 sub.w r1, r1, #8388608 @ 0x800000 - 800a936: 2600 movs r6, #0 - 800a938: 4b6c ldr r3, [pc, #432] @ (800aaec <__ieee754_powf+0x3ec>) - 800a93a: eb03 0386 add.w r3, r3, r6, lsl #2 - 800a93e: ee07 1a10 vmov s14, r1 - 800a942: edd3 5a00 vldr s11, [r3] - 800a946: 4b6a ldr r3, [pc, #424] @ (800aaf0 <__ieee754_powf+0x3f0>) - 800a948: ee75 7a87 vadd.f32 s15, s11, s14 - 800a94c: eef7 6a00 vmov.f32 s13, #112 @ 0x3f800000 1.0 - 800a950: eec6 4aa7 vdiv.f32 s9, s13, s15 - 800a954: 1049 asrs r1, r1, #1 - 800a956: f041 5100 orr.w r1, r1, #536870912 @ 0x20000000 - 800a95a: f501 2180 add.w r1, r1, #262144 @ 0x40000 - 800a95e: eb01 5146 add.w r1, r1, r6, lsl #21 - 800a962: ee37 6a65 vsub.f32 s12, s14, s11 - 800a966: ee07 1a90 vmov s15, r1 - 800a96a: ee26 5a24 vmul.f32 s10, s12, s9 - 800a96e: ee77 5ae5 vsub.f32 s11, s15, s11 - 800a972: ee15 7a10 vmov r7, s10 - 800a976: 401f ands r7, r3 - 800a978: ee06 7a90 vmov s13, r7 - 800a97c: eea6 6ae7 vfms.f32 s12, s13, s15 - 800a980: ee37 7a65 vsub.f32 s14, s14, s11 - 800a984: ee65 7a05 vmul.f32 s15, s10, s10 - 800a988: eea6 6ac7 vfms.f32 s12, s13, s14 - 800a98c: eddf 5a59 vldr s11, [pc, #356] @ 800aaf4 <__ieee754_powf+0x3f4> - 800a990: ed9f 7a59 vldr s14, [pc, #356] @ 800aaf8 <__ieee754_powf+0x3f8> - 800a994: eee7 5a87 vfma.f32 s11, s15, s14 - 800a998: ed9f 7a58 vldr s14, [pc, #352] @ 800aafc <__ieee754_powf+0x3fc> - 800a99c: eea5 7aa7 vfma.f32 s14, s11, s15 - 800a9a0: eddf 5a4b vldr s11, [pc, #300] @ 800aad0 <__ieee754_powf+0x3d0> - 800a9a4: eee7 5a27 vfma.f32 s11, s14, s15 - 800a9a8: ed9f 7a55 vldr s14, [pc, #340] @ 800ab00 <__ieee754_powf+0x400> - 800a9ac: eea5 7aa7 vfma.f32 s14, s11, s15 - 800a9b0: eddf 5a54 vldr s11, [pc, #336] @ 800ab04 <__ieee754_powf+0x404> - 800a9b4: ee26 6a24 vmul.f32 s12, s12, s9 - 800a9b8: eee7 5a27 vfma.f32 s11, s14, s15 - 800a9bc: ee35 7a26 vadd.f32 s14, s10, s13 - 800a9c0: ee67 4aa7 vmul.f32 s9, s15, s15 - 800a9c4: ee27 7a06 vmul.f32 s14, s14, s12 - 800a9c8: eef0 7a08 vmov.f32 s15, #8 @ 0x40400000 3.0 - 800a9cc: eea4 7aa5 vfma.f32 s14, s9, s11 - 800a9d0: eef0 5a67 vmov.f32 s11, s15 - 800a9d4: eee6 5aa6 vfma.f32 s11, s13, s13 - 800a9d8: ee75 5a87 vadd.f32 s11, s11, s14 - 800a9dc: ee15 1a90 vmov r1, s11 - 800a9e0: 4019 ands r1, r3 - 800a9e2: ee05 1a90 vmov s11, r1 - 800a9e6: ee75 7ae7 vsub.f32 s15, s11, s15 - 800a9ea: eee6 7ae6 vfms.f32 s15, s13, s13 - 800a9ee: ee77 7a67 vsub.f32 s15, s14, s15 - 800a9f2: ee67 7a85 vmul.f32 s15, s15, s10 - 800a9f6: eee6 7a25 vfma.f32 s15, s12, s11 - 800a9fa: eeb0 6a67 vmov.f32 s12, s15 - 800a9fe: eea6 6aa5 vfma.f32 s12, s13, s11 - 800aa02: ee16 1a10 vmov r1, s12 - 800aa06: 4019 ands r1, r3 - 800aa08: ee06 1a10 vmov s12, r1 - 800aa0c: eeb0 7a46 vmov.f32 s14, s12 - 800aa10: eea6 7ae5 vfms.f32 s14, s13, s11 - 800aa14: 493c ldr r1, [pc, #240] @ (800ab08 <__ieee754_powf+0x408>) - 800aa16: eb01 0186 add.w r1, r1, r6, lsl #2 - 800aa1a: ee77 7ac7 vsub.f32 s15, s15, s14 - 800aa1e: ed9f 7a3b vldr s14, [pc, #236] @ 800ab0c <__ieee754_powf+0x40c> - 800aa22: eddf 5a3b vldr s11, [pc, #236] @ 800ab10 <__ieee754_powf+0x410> - 800aa26: ee67 7a87 vmul.f32 s15, s15, s14 - 800aa2a: ed9f 7a3a vldr s14, [pc, #232] @ 800ab14 <__ieee754_powf+0x414> - 800aa2e: eee6 7a07 vfma.f32 s15, s12, s14 - 800aa32: ed91 7a00 vldr s14, [r1] - 800aa36: ee77 7a87 vadd.f32 s15, s15, s14 - 800aa3a: ee07 2a10 vmov s14, r2 - 800aa3e: 4a36 ldr r2, [pc, #216] @ (800ab18 <__ieee754_powf+0x418>) - 800aa40: eef8 6ac7 vcvt.f32.s32 s13, s14 - 800aa44: eeb0 7a67 vmov.f32 s14, s15 - 800aa48: eea6 7a25 vfma.f32 s14, s12, s11 - 800aa4c: eb02 0286 add.w r2, r2, r6, lsl #2 - 800aa50: ed92 5a00 vldr s10, [r2] - 800aa54: ee37 7a05 vadd.f32 s14, s14, s10 - 800aa58: ee37 7a26 vadd.f32 s14, s14, s13 - 800aa5c: ee17 2a10 vmov r2, s14 - 800aa60: 401a ands r2, r3 - 800aa62: ee07 2a10 vmov s14, r2 - 800aa66: ee77 6a66 vsub.f32 s13, s14, s13 - 800aa6a: ee76 6ac5 vsub.f32 s13, s13, s10 - 800aa6e: eee6 6a65 vfms.f32 s13, s12, s11 - 800aa72: ee77 7ae6 vsub.f32 s15, s15, s13 - 800aa76: e715 b.n 800a8a4 <__ieee754_powf+0x1a4> - 800aa78: 2601 movs r6, #1 - 800aa7a: e75d b.n 800a938 <__ieee754_powf+0x238> - 800aa7c: d152 bne.n 800ab24 <__ieee754_powf+0x424> - 800aa7e: eddf 6a27 vldr s13, [pc, #156] @ 800ab1c <__ieee754_powf+0x41c> - 800aa82: ee37 7a67 vsub.f32 s14, s14, s15 - 800aa86: ee70 6aa6 vadd.f32 s13, s1, s13 - 800aa8a: eef4 6ac7 vcmpe.f32 s13, s14 - 800aa8e: eef1 fa10 vmrs APSR_nzcv, fpscr - 800aa92: f73f af29 bgt.w 800a8e8 <__ieee754_powf+0x1e8> - 800aa96: 2386 movs r3, #134 @ 0x86 - 800aa98: e048 b.n 800ab2c <__ieee754_powf+0x42c> - 800aa9a: 4a21 ldr r2, [pc, #132] @ (800ab20 <__ieee754_powf+0x420>) - 800aa9c: 4293 cmp r3, r2 - 800aa9e: d907 bls.n 800aab0 <__ieee754_powf+0x3b0> - 800aaa0: eeb5 8ac0 vcmpe.f32 s16, #0.0 - 800aaa4: eef1 fa10 vmrs APSR_nzcv, fpscr - 800aaa8: bf4c ite mi - 800aaaa: 2001 movmi r0, #1 - 800aaac: 2000 movpl r0, #0 - 800aaae: e6c7 b.n 800a840 <__ieee754_powf+0x140> - 800aab0: d138 bne.n 800ab24 <__ieee754_powf+0x424> - 800aab2: ee37 7a67 vsub.f32 s14, s14, s15 - 800aab6: eeb4 7ae0 vcmpe.f32 s14, s1 - 800aaba: eef1 fa10 vmrs APSR_nzcv, fpscr - 800aabe: dbea blt.n 800aa96 <__ieee754_powf+0x396> - 800aac0: e7ee b.n 800aaa0 <__ieee754_powf+0x3a0> - 800aac2: bf00 nop - 800aac4: 00000000 .word 0x00000000 - 800aac8: 3f7ffff3 .word 0x3f7ffff3 - 800aacc: 3f800007 .word 0x3f800007 - 800aad0: 3eaaaaab .word 0x3eaaaaab - 800aad4: 3fb8aa00 .word 0x3fb8aa00 - 800aad8: 3fb8aa3b .word 0x3fb8aa3b - 800aadc: 36eca570 .word 0x36eca570 - 800aae0: 4b800000 .word 0x4b800000 - 800aae4: 001cc471 .word 0x001cc471 - 800aae8: 005db3d6 .word 0x005db3d6 - 800aaec: 0800bd24 .word 0x0800bd24 - 800aaf0: fffff000 .word 0xfffff000 - 800aaf4: 3e6c3255 .word 0x3e6c3255 - 800aaf8: 3e53f142 .word 0x3e53f142 - 800aafc: 3e8ba305 .word 0x3e8ba305 - 800ab00: 3edb6db7 .word 0x3edb6db7 - 800ab04: 3f19999a .word 0x3f19999a - 800ab08: 0800bd14 .word 0x0800bd14 - 800ab0c: 3f76384f .word 0x3f76384f - 800ab10: 3f763800 .word 0x3f763800 - 800ab14: 369dc3a0 .word 0x369dc3a0 - 800ab18: 0800bd1c .word 0x0800bd1c - 800ab1c: 3338aa3c .word 0x3338aa3c - 800ab20: 43160000 .word 0x43160000 - 800ab24: f1b3 5f7c cmp.w r3, #1056964608 @ 0x3f000000 - 800ab28: d96f bls.n 800ac0a <__ieee754_powf+0x50a> - 800ab2a: 15db asrs r3, r3, #23 - 800ab2c: 3b7e subs r3, #126 @ 0x7e - 800ab2e: f44f 0000 mov.w r0, #8388608 @ 0x800000 - 800ab32: 4118 asrs r0, r3 - 800ab34: 4408 add r0, r1 - 800ab36: f3c0 53c7 ubfx r3, r0, #23, #8 - 800ab3a: 4a4e ldr r2, [pc, #312] @ (800ac74 <__ieee754_powf+0x574>) - 800ab3c: 3b7f subs r3, #127 @ 0x7f - 800ab3e: 411a asrs r2, r3 - 800ab40: 4002 ands r2, r0 - 800ab42: ee07 2a10 vmov s14, r2 - 800ab46: f3c0 0016 ubfx r0, r0, #0, #23 - 800ab4a: f440 0000 orr.w r0, r0, #8388608 @ 0x800000 - 800ab4e: f1c3 0317 rsb r3, r3, #23 - 800ab52: 4118 asrs r0, r3 - 800ab54: 2900 cmp r1, #0 - 800ab56: ee77 7ac7 vsub.f32 s15, s15, s14 - 800ab5a: bfb8 it lt - 800ab5c: 4240 neglt r0, r0 - 800ab5e: ee77 6aa0 vadd.f32 s13, s15, s1 - 800ab62: ed9f 7a45 vldr s14, [pc, #276] @ 800ac78 <__ieee754_powf+0x578> - 800ab66: ed9f 6a45 vldr s12, [pc, #276] @ 800ac7c <__ieee754_powf+0x57c> - 800ab6a: ee16 3a90 vmov r3, s13 - 800ab6e: f36f 030b bfc r3, #0, #12 - 800ab72: ee06 3a90 vmov s13, r3 - 800ab76: ee76 7ae7 vsub.f32 s15, s13, s15 - 800ab7a: eeb7 0a00 vmov.f32 s0, #112 @ 0x3f800000 1.0 - 800ab7e: ee70 0ae7 vsub.f32 s1, s1, s15 - 800ab82: eddf 7a3f vldr s15, [pc, #252] @ 800ac80 <__ieee754_powf+0x580> - 800ab86: ee66 7aa7 vmul.f32 s15, s13, s15 - 800ab8a: eee0 7a87 vfma.f32 s15, s1, s14 - 800ab8e: eeb0 7a67 vmov.f32 s14, s15 - 800ab92: eea6 7a86 vfma.f32 s14, s13, s12 - 800ab96: eef0 5a47 vmov.f32 s11, s14 - 800ab9a: eee6 5ac6 vfms.f32 s11, s13, s12 - 800ab9e: ee67 6a07 vmul.f32 s13, s14, s14 - 800aba2: ee77 7ae5 vsub.f32 s15, s15, s11 - 800aba6: ed9f 6a37 vldr s12, [pc, #220] @ 800ac84 <__ieee754_powf+0x584> - 800abaa: eddf 5a37 vldr s11, [pc, #220] @ 800ac88 <__ieee754_powf+0x588> - 800abae: eea6 6aa5 vfma.f32 s12, s13, s11 - 800abb2: eddf 5a36 vldr s11, [pc, #216] @ 800ac8c <__ieee754_powf+0x58c> - 800abb6: eee6 5a26 vfma.f32 s11, s12, s13 - 800abba: ed9f 6a35 vldr s12, [pc, #212] @ 800ac90 <__ieee754_powf+0x590> - 800abbe: eea5 6aa6 vfma.f32 s12, s11, s13 - 800abc2: eddf 5a34 vldr s11, [pc, #208] @ 800ac94 <__ieee754_powf+0x594> - 800abc6: eee6 5a26 vfma.f32 s11, s12, s13 - 800abca: eeb0 6a47 vmov.f32 s12, s14 - 800abce: eea5 6ae6 vfms.f32 s12, s11, s13 - 800abd2: eef0 6a00 vmov.f32 s13, #0 @ 0x40000000 2.0 - 800abd6: ee67 5a06 vmul.f32 s11, s14, s12 - 800abda: ee36 6a66 vsub.f32 s12, s12, s13 - 800abde: eee7 7a27 vfma.f32 s15, s14, s15 - 800abe2: eec5 6a86 vdiv.f32 s13, s11, s12 - 800abe6: ee76 7ae7 vsub.f32 s15, s13, s15 - 800abea: ee77 7ac7 vsub.f32 s15, s15, s14 - 800abee: ee30 0a67 vsub.f32 s0, s0, s15 - 800abf2: ee10 3a10 vmov r3, s0 - 800abf6: eb03 53c0 add.w r3, r3, r0, lsl #23 - 800abfa: f5b3 0f00 cmp.w r3, #8388608 @ 0x800000 - 800abfe: da06 bge.n 800ac0e <__ieee754_powf+0x50e> - 800ac00: f000 fa50 bl 800b0a4 - 800ac04: ee20 0a08 vmul.f32 s0, s0, s16 - 800ac08: e592 b.n 800a730 <__ieee754_powf+0x30> - 800ac0a: 2000 movs r0, #0 - 800ac0c: e7a7 b.n 800ab5e <__ieee754_powf+0x45e> - 800ac0e: ee00 3a10 vmov s0, r3 - 800ac12: e7f7 b.n 800ac04 <__ieee754_powf+0x504> - 800ac14: eeb7 0a00 vmov.f32 s0, #112 @ 0x3f800000 1.0 - 800ac18: e58a b.n 800a730 <__ieee754_powf+0x30> - 800ac1a: ed9f 0a1f vldr s0, [pc, #124] @ 800ac98 <__ieee754_powf+0x598> - 800ac1e: e587 b.n 800a730 <__ieee754_powf+0x30> - 800ac20: eeb0 0a48 vmov.f32 s0, s16 - 800ac24: e584 b.n 800a730 <__ieee754_powf+0x30> - 800ac26: f1b9 4fff cmp.w r9, #2139095040 @ 0x7f800000 - 800ac2a: f43f adbb beq.w 800a7a4 <__ieee754_powf+0xa4> - 800ac2e: 2502 movs r5, #2 - 800ac30: eeb0 0a48 vmov.f32 s0, s16 - 800ac34: f7ff fade bl 800a1f4 - 800ac38: f026 4340 bic.w r3, r6, #3221225472 @ 0xc0000000 - 800ac3c: f1b3 5f7e cmp.w r3, #1065353216 @ 0x3f800000 - 800ac40: 4647 mov r7, r8 - 800ac42: d003 beq.n 800ac4c <__ieee754_powf+0x54c> - 800ac44: f1b8 0f00 cmp.w r8, #0 - 800ac48: f47f addb bne.w 800a802 <__ieee754_powf+0x102> - 800ac4c: 2c00 cmp r4, #0 - 800ac4e: bfbc itt lt - 800ac50: eef7 7a00 vmovlt.f32 s15, #112 @ 0x3f800000 1.0 - 800ac54: ee87 0a80 vdivlt.f32 s0, s15, s0 - 800ac58: 2e00 cmp r6, #0 - 800ac5a: f6bf ad69 bge.w 800a730 <__ieee754_powf+0x30> - 800ac5e: f1a8 587e sub.w r8, r8, #1065353216 @ 0x3f800000 - 800ac62: ea58 0805 orrs.w r8, r8, r5 - 800ac66: f47f adc7 bne.w 800a7f8 <__ieee754_powf+0xf8> - 800ac6a: ee70 7a40 vsub.f32 s15, s0, s0 - 800ac6e: ee87 0aa7 vdiv.f32 s0, s15, s15 - 800ac72: e55d b.n 800a730 <__ieee754_powf+0x30> - 800ac74: ff800000 .word 0xff800000 - 800ac78: 3f317218 .word 0x3f317218 - 800ac7c: 3f317200 .word 0x3f317200 - 800ac80: 35bfbe8c .word 0x35bfbe8c - 800ac84: b5ddea0e .word 0xb5ddea0e - 800ac88: 3331bb4c .word 0x3331bb4c - 800ac8c: 388ab355 .word 0x388ab355 - 800ac90: bb360b61 .word 0xbb360b61 - 800ac94: 3e2aaaab .word 0x3e2aaaab - 800ac98: 00000000 .word 0x00000000 - -0800ac9c <__ieee754_rem_pio2f>: - 800ac9c: b5f0 push {r4, r5, r6, r7, lr} - 800ac9e: ee10 6a10 vmov r6, s0 - 800aca2: 4b88 ldr r3, [pc, #544] @ (800aec4 <__ieee754_rem_pio2f+0x228>) - 800aca4: f026 4500 bic.w r5, r6, #2147483648 @ 0x80000000 - 800aca8: 429d cmp r5, r3 - 800acaa: b087 sub sp, #28 - 800acac: 4604 mov r4, r0 - 800acae: d805 bhi.n 800acbc <__ieee754_rem_pio2f+0x20> - 800acb0: 2300 movs r3, #0 - 800acb2: ed80 0a00 vstr s0, [r0] - 800acb6: 6043 str r3, [r0, #4] - 800acb8: 2000 movs r0, #0 - 800acba: e022 b.n 800ad02 <__ieee754_rem_pio2f+0x66> - 800acbc: 4b82 ldr r3, [pc, #520] @ (800aec8 <__ieee754_rem_pio2f+0x22c>) - 800acbe: 429d cmp r5, r3 - 800acc0: d83a bhi.n 800ad38 <__ieee754_rem_pio2f+0x9c> - 800acc2: f026 4300 bic.w r3, r6, #2147483648 @ 0x80000000 - 800acc6: 2e00 cmp r6, #0 - 800acc8: ed9f 7a80 vldr s14, [pc, #512] @ 800aecc <__ieee754_rem_pio2f+0x230> - 800accc: 4a80 ldr r2, [pc, #512] @ (800aed0 <__ieee754_rem_pio2f+0x234>) - 800acce: f023 030f bic.w r3, r3, #15 - 800acd2: dd18 ble.n 800ad06 <__ieee754_rem_pio2f+0x6a> - 800acd4: 4293 cmp r3, r2 - 800acd6: ee70 7a47 vsub.f32 s15, s0, s14 - 800acda: bf09 itett eq - 800acdc: ed9f 7a7d vldreq s14, [pc, #500] @ 800aed4 <__ieee754_rem_pio2f+0x238> - 800ace0: eddf 6a7d vldrne s13, [pc, #500] @ 800aed8 <__ieee754_rem_pio2f+0x23c> - 800ace4: eddf 6a7d vldreq s13, [pc, #500] @ 800aedc <__ieee754_rem_pio2f+0x240> - 800ace8: ee77 7ac7 vsubeq.f32 s15, s15, s14 - 800acec: ee37 7ae6 vsub.f32 s14, s15, s13 - 800acf0: ee77 7ac7 vsub.f32 s15, s15, s14 - 800acf4: ed80 7a00 vstr s14, [r0] - 800acf8: ee77 7ae6 vsub.f32 s15, s15, s13 - 800acfc: edc0 7a01 vstr s15, [r0, #4] - 800ad00: 2001 movs r0, #1 - 800ad02: b007 add sp, #28 - 800ad04: bdf0 pop {r4, r5, r6, r7, pc} - 800ad06: 4293 cmp r3, r2 - 800ad08: ee70 7a07 vadd.f32 s15, s0, s14 - 800ad0c: bf09 itett eq - 800ad0e: ed9f 7a71 vldreq s14, [pc, #452] @ 800aed4 <__ieee754_rem_pio2f+0x238> - 800ad12: eddf 6a71 vldrne s13, [pc, #452] @ 800aed8 <__ieee754_rem_pio2f+0x23c> - 800ad16: eddf 6a71 vldreq s13, [pc, #452] @ 800aedc <__ieee754_rem_pio2f+0x240> - 800ad1a: ee77 7a87 vaddeq.f32 s15, s15, s14 - 800ad1e: ee37 7aa6 vadd.f32 s14, s15, s13 - 800ad22: ee77 7ac7 vsub.f32 s15, s15, s14 - 800ad26: ed80 7a00 vstr s14, [r0] - 800ad2a: ee77 7aa6 vadd.f32 s15, s15, s13 - 800ad2e: edc0 7a01 vstr s15, [r0, #4] - 800ad32: f04f 30ff mov.w r0, #4294967295 - 800ad36: e7e4 b.n 800ad02 <__ieee754_rem_pio2f+0x66> - 800ad38: 4b69 ldr r3, [pc, #420] @ (800aee0 <__ieee754_rem_pio2f+0x244>) - 800ad3a: 429d cmp r5, r3 - 800ad3c: d873 bhi.n 800ae26 <__ieee754_rem_pio2f+0x18a> - 800ad3e: f7ff fa59 bl 800a1f4 - 800ad42: ed9f 7a68 vldr s14, [pc, #416] @ 800aee4 <__ieee754_rem_pio2f+0x248> - 800ad46: eef6 7a00 vmov.f32 s15, #96 @ 0x3f000000 0.5 - 800ad4a: eee0 7a07 vfma.f32 s15, s0, s14 - 800ad4e: eefd 7ae7 vcvt.s32.f32 s15, s15 - 800ad52: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 800ad56: ee17 0a90 vmov r0, s15 - 800ad5a: eddf 7a5c vldr s15, [pc, #368] @ 800aecc <__ieee754_rem_pio2f+0x230> - 800ad5e: eea7 0a67 vfms.f32 s0, s14, s15 - 800ad62: 281f cmp r0, #31 - 800ad64: eddf 7a5c vldr s15, [pc, #368] @ 800aed8 <__ieee754_rem_pio2f+0x23c> - 800ad68: ee67 7a27 vmul.f32 s15, s14, s15 - 800ad6c: eeb1 6a47 vneg.f32 s12, s14 - 800ad70: ee70 6a67 vsub.f32 s13, s0, s15 - 800ad74: ee16 1a90 vmov r1, s13 - 800ad78: dc09 bgt.n 800ad8e <__ieee754_rem_pio2f+0xf2> - 800ad7a: 4a5b ldr r2, [pc, #364] @ (800aee8 <__ieee754_rem_pio2f+0x24c>) - 800ad7c: 1e47 subs r7, r0, #1 - 800ad7e: f026 4300 bic.w r3, r6, #2147483648 @ 0x80000000 - 800ad82: f852 2027 ldr.w r2, [r2, r7, lsl #2] - 800ad86: f023 03ff bic.w r3, r3, #255 @ 0xff - 800ad8a: 4293 cmp r3, r2 - 800ad8c: d107 bne.n 800ad9e <__ieee754_rem_pio2f+0x102> - 800ad8e: f3c1 52c7 ubfx r2, r1, #23, #8 - 800ad92: ebc2 52d5 rsb r2, r2, r5, lsr #23 - 800ad96: 2a08 cmp r2, #8 - 800ad98: ea4f 53e5 mov.w r3, r5, asr #23 - 800ad9c: dc14 bgt.n 800adc8 <__ieee754_rem_pio2f+0x12c> - 800ad9e: 6021 str r1, [r4, #0] - 800ada0: ed94 7a00 vldr s14, [r4] - 800ada4: ee30 0a47 vsub.f32 s0, s0, s14 - 800ada8: 2e00 cmp r6, #0 - 800adaa: ee30 0a67 vsub.f32 s0, s0, s15 - 800adae: ed84 0a01 vstr s0, [r4, #4] - 800adb2: daa6 bge.n 800ad02 <__ieee754_rem_pio2f+0x66> - 800adb4: eeb1 7a47 vneg.f32 s14, s14 - 800adb8: eeb1 0a40 vneg.f32 s0, s0 - 800adbc: ed84 7a00 vstr s14, [r4] - 800adc0: ed84 0a01 vstr s0, [r4, #4] - 800adc4: 4240 negs r0, r0 - 800adc6: e79c b.n 800ad02 <__ieee754_rem_pio2f+0x66> - 800adc8: eddf 5a42 vldr s11, [pc, #264] @ 800aed4 <__ieee754_rem_pio2f+0x238> - 800adcc: eef0 6a40 vmov.f32 s13, s0 - 800add0: eee6 6a25 vfma.f32 s13, s12, s11 - 800add4: ee70 7a66 vsub.f32 s15, s0, s13 - 800add8: eee6 7a25 vfma.f32 s15, s12, s11 - 800addc: eddf 5a3f vldr s11, [pc, #252] @ 800aedc <__ieee754_rem_pio2f+0x240> - 800ade0: eed7 7a25 vfnms.f32 s15, s14, s11 - 800ade4: ee76 5ae7 vsub.f32 s11, s13, s15 - 800ade8: ee15 2a90 vmov r2, s11 - 800adec: f3c2 51c7 ubfx r1, r2, #23, #8 - 800adf0: 1a5b subs r3, r3, r1 - 800adf2: 2b19 cmp r3, #25 - 800adf4: dc04 bgt.n 800ae00 <__ieee754_rem_pio2f+0x164> - 800adf6: edc4 5a00 vstr s11, [r4] - 800adfa: eeb0 0a66 vmov.f32 s0, s13 - 800adfe: e7cf b.n 800ada0 <__ieee754_rem_pio2f+0x104> - 800ae00: eddf 5a3a vldr s11, [pc, #232] @ 800aeec <__ieee754_rem_pio2f+0x250> - 800ae04: eeb0 0a66 vmov.f32 s0, s13 - 800ae08: eea6 0a25 vfma.f32 s0, s12, s11 - 800ae0c: ee76 7ac0 vsub.f32 s15, s13, s0 - 800ae10: eddf 6a37 vldr s13, [pc, #220] @ 800aef0 <__ieee754_rem_pio2f+0x254> - 800ae14: eee6 7a25 vfma.f32 s15, s12, s11 - 800ae18: eed7 7a26 vfnms.f32 s15, s14, s13 - 800ae1c: ee30 7a67 vsub.f32 s14, s0, s15 - 800ae20: ed84 7a00 vstr s14, [r4] - 800ae24: e7bc b.n 800ada0 <__ieee754_rem_pio2f+0x104> - 800ae26: f1b5 4fff cmp.w r5, #2139095040 @ 0x7f800000 - 800ae2a: d306 bcc.n 800ae3a <__ieee754_rem_pio2f+0x19e> - 800ae2c: ee70 7a40 vsub.f32 s15, s0, s0 - 800ae30: edc0 7a01 vstr s15, [r0, #4] - 800ae34: edc0 7a00 vstr s15, [r0] - 800ae38: e73e b.n 800acb8 <__ieee754_rem_pio2f+0x1c> - 800ae3a: 15ea asrs r2, r5, #23 - 800ae3c: 3a86 subs r2, #134 @ 0x86 - 800ae3e: eba5 53c2 sub.w r3, r5, r2, lsl #23 - 800ae42: ee07 3a90 vmov s15, r3 - 800ae46: eebd 7ae7 vcvt.s32.f32 s14, s15 - 800ae4a: eddf 6a2a vldr s13, [pc, #168] @ 800aef4 <__ieee754_rem_pio2f+0x258> - 800ae4e: eeb8 7ac7 vcvt.f32.s32 s14, s14 - 800ae52: ee77 7ac7 vsub.f32 s15, s15, s14 - 800ae56: ed8d 7a03 vstr s14, [sp, #12] - 800ae5a: ee67 7aa6 vmul.f32 s15, s15, s13 - 800ae5e: eebd 7ae7 vcvt.s32.f32 s14, s15 - 800ae62: eeb8 7ac7 vcvt.f32.s32 s14, s14 - 800ae66: ee77 7ac7 vsub.f32 s15, s15, s14 - 800ae6a: ed8d 7a04 vstr s14, [sp, #16] - 800ae6e: ee67 7aa6 vmul.f32 s15, s15, s13 - 800ae72: eef5 7a40 vcmp.f32 s15, #0.0 - 800ae76: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ae7a: edcd 7a05 vstr s15, [sp, #20] - 800ae7e: d11e bne.n 800aebe <__ieee754_rem_pio2f+0x222> - 800ae80: eeb5 7a40 vcmp.f32 s14, #0.0 - 800ae84: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ae88: bf0c ite eq - 800ae8a: 2301 moveq r3, #1 - 800ae8c: 2302 movne r3, #2 - 800ae8e: 491a ldr r1, [pc, #104] @ (800aef8 <__ieee754_rem_pio2f+0x25c>) - 800ae90: 9101 str r1, [sp, #4] - 800ae92: 2102 movs r1, #2 - 800ae94: 9100 str r1, [sp, #0] - 800ae96: a803 add r0, sp, #12 - 800ae98: 4621 mov r1, r4 - 800ae9a: f000 f98f bl 800b1bc <__kernel_rem_pio2f> - 800ae9e: 2e00 cmp r6, #0 - 800aea0: f6bf af2f bge.w 800ad02 <__ieee754_rem_pio2f+0x66> - 800aea4: edd4 7a00 vldr s15, [r4] - 800aea8: eef1 7a67 vneg.f32 s15, s15 - 800aeac: edc4 7a00 vstr s15, [r4] - 800aeb0: edd4 7a01 vldr s15, [r4, #4] - 800aeb4: eef1 7a67 vneg.f32 s15, s15 - 800aeb8: edc4 7a01 vstr s15, [r4, #4] - 800aebc: e782 b.n 800adc4 <__ieee754_rem_pio2f+0x128> - 800aebe: 2303 movs r3, #3 - 800aec0: e7e5 b.n 800ae8e <__ieee754_rem_pio2f+0x1f2> - 800aec2: bf00 nop - 800aec4: 3f490fd8 .word 0x3f490fd8 - 800aec8: 4016cbe3 .word 0x4016cbe3 - 800aecc: 3fc90f80 .word 0x3fc90f80 - 800aed0: 3fc90fd0 .word 0x3fc90fd0 - 800aed4: 37354400 .word 0x37354400 - 800aed8: 37354443 .word 0x37354443 - 800aedc: 2e85a308 .word 0x2e85a308 - 800aee0: 43490f80 .word 0x43490f80 - 800aee4: 3f22f984 .word 0x3f22f984 - 800aee8: 0800bd2c .word 0x0800bd2c - 800aeec: 2e85a300 .word 0x2e85a300 - 800aef0: 248d3132 .word 0x248d3132 - 800aef4: 43800000 .word 0x43800000 - 800aef8: 0800bdac .word 0x0800bdac - -0800aefc : - 800aefc: b538 push {r3, r4, r5, lr} - 800aefe: ee10 5a10 vmov r5, s0 - 800af02: f025 4400 bic.w r4, r5, #2147483648 @ 0x80000000 - 800af06: f1b4 4fa1 cmp.w r4, #1350565888 @ 0x50800000 - 800af0a: eef0 7a40 vmov.f32 s15, s0 - 800af0e: d310 bcc.n 800af32 - 800af10: f1b4 4fff cmp.w r4, #2139095040 @ 0x7f800000 - 800af14: d904 bls.n 800af20 - 800af16: ee70 7a00 vadd.f32 s15, s0, s0 - 800af1a: eeb0 0a67 vmov.f32 s0, s15 - 800af1e: bd38 pop {r3, r4, r5, pc} - 800af20: eddf 7a4d vldr s15, [pc, #308] @ 800b058 - 800af24: ed9f 7a4d vldr s14, [pc, #308] @ 800b05c - 800af28: 2d00 cmp r5, #0 - 800af2a: bfc8 it gt - 800af2c: eef0 7a47 vmovgt.f32 s15, s14 - 800af30: e7f3 b.n 800af1a - 800af32: 4b4b ldr r3, [pc, #300] @ (800b060 ) - 800af34: 429c cmp r4, r3 - 800af36: d810 bhi.n 800af5a - 800af38: f1b4 5f44 cmp.w r4, #822083584 @ 0x31000000 - 800af3c: d20a bcs.n 800af54 - 800af3e: ed9f 7a49 vldr s14, [pc, #292] @ 800b064 - 800af42: ee30 7a07 vadd.f32 s14, s0, s14 - 800af46: eef7 6a00 vmov.f32 s13, #112 @ 0x3f800000 1.0 - 800af4a: eeb4 7ae6 vcmpe.f32 s14, s13 - 800af4e: eef1 fa10 vmrs APSR_nzcv, fpscr - 800af52: dce2 bgt.n 800af1a - 800af54: f04f 33ff mov.w r3, #4294967295 - 800af58: e013 b.n 800af82 - 800af5a: f7ff f94b bl 800a1f4 - 800af5e: 4b42 ldr r3, [pc, #264] @ (800b068 ) - 800af60: 429c cmp r4, r3 - 800af62: d84f bhi.n 800b004 - 800af64: f5a3 03d0 sub.w r3, r3, #6815744 @ 0x680000 - 800af68: 429c cmp r4, r3 - 800af6a: d841 bhi.n 800aff0 - 800af6c: eef0 7a00 vmov.f32 s15, #0 @ 0x40000000 2.0 - 800af70: eebf 7a00 vmov.f32 s14, #240 @ 0xbf800000 -1.0 - 800af74: eea0 7a27 vfma.f32 s14, s0, s15 - 800af78: 2300 movs r3, #0 - 800af7a: ee30 0a27 vadd.f32 s0, s0, s15 - 800af7e: eec7 7a00 vdiv.f32 s15, s14, s0 - 800af82: 1c5a adds r2, r3, #1 - 800af84: ee27 6aa7 vmul.f32 s12, s15, s15 - 800af88: ed9f 7a38 vldr s14, [pc, #224] @ 800b06c - 800af8c: eddf 5a38 vldr s11, [pc, #224] @ 800b070 - 800af90: ed9f 5a38 vldr s10, [pc, #224] @ 800b074 - 800af94: ee66 6a06 vmul.f32 s13, s12, s12 - 800af98: eee6 5a87 vfma.f32 s11, s13, s14 - 800af9c: ed9f 7a36 vldr s14, [pc, #216] @ 800b078 - 800afa0: eea5 7aa6 vfma.f32 s14, s11, s13 - 800afa4: eddf 5a35 vldr s11, [pc, #212] @ 800b07c - 800afa8: eee7 5a26 vfma.f32 s11, s14, s13 - 800afac: ed9f 7a34 vldr s14, [pc, #208] @ 800b080 - 800afb0: eea5 7aa6 vfma.f32 s14, s11, s13 - 800afb4: eddf 5a33 vldr s11, [pc, #204] @ 800b084 - 800afb8: eee7 5a26 vfma.f32 s11, s14, s13 - 800afbc: ed9f 7a32 vldr s14, [pc, #200] @ 800b088 - 800afc0: eea6 5a87 vfma.f32 s10, s13, s14 - 800afc4: ed9f 7a31 vldr s14, [pc, #196] @ 800b08c - 800afc8: eea5 7a26 vfma.f32 s14, s10, s13 - 800afcc: ed9f 5a30 vldr s10, [pc, #192] @ 800b090 - 800afd0: eea7 5a26 vfma.f32 s10, s14, s13 - 800afd4: ed9f 7a2f vldr s14, [pc, #188] @ 800b094 - 800afd8: eea5 7a26 vfma.f32 s14, s10, s13 - 800afdc: ee27 7a26 vmul.f32 s14, s14, s13 - 800afe0: eea5 7a86 vfma.f32 s14, s11, s12 - 800afe4: ee27 7a87 vmul.f32 s14, s15, s14 - 800afe8: d121 bne.n 800b02e - 800afea: ee77 7ac7 vsub.f32 s15, s15, s14 - 800afee: e794 b.n 800af1a - 800aff0: eef7 7a00 vmov.f32 s15, #112 @ 0x3f800000 1.0 - 800aff4: ee30 7a67 vsub.f32 s14, s0, s15 - 800aff8: ee30 0a27 vadd.f32 s0, s0, s15 - 800affc: 2301 movs r3, #1 - 800affe: eec7 7a00 vdiv.f32 s15, s14, s0 - 800b002: e7be b.n 800af82 - 800b004: 4b24 ldr r3, [pc, #144] @ (800b098 ) - 800b006: 429c cmp r4, r3 - 800b008: d80b bhi.n 800b022 - 800b00a: eef7 7a08 vmov.f32 s15, #120 @ 0x3fc00000 1.5 - 800b00e: eeb7 7a00 vmov.f32 s14, #112 @ 0x3f800000 1.0 - 800b012: eea0 7a27 vfma.f32 s14, s0, s15 - 800b016: 2302 movs r3, #2 - 800b018: ee70 6a67 vsub.f32 s13, s0, s15 - 800b01c: eec6 7a87 vdiv.f32 s15, s13, s14 - 800b020: e7af b.n 800af82 - 800b022: eebf 7a00 vmov.f32 s14, #240 @ 0xbf800000 -1.0 - 800b026: eec7 7a00 vdiv.f32 s15, s14, s0 - 800b02a: 2303 movs r3, #3 - 800b02c: e7a9 b.n 800af82 - 800b02e: 4a1b ldr r2, [pc, #108] @ (800b09c ) - 800b030: 491b ldr r1, [pc, #108] @ (800b0a0 ) - 800b032: eb02 0283 add.w r2, r2, r3, lsl #2 - 800b036: eb01 0383 add.w r3, r1, r3, lsl #2 - 800b03a: edd3 6a00 vldr s13, [r3] - 800b03e: ee37 7a66 vsub.f32 s14, s14, s13 - 800b042: 2d00 cmp r5, #0 - 800b044: ee37 7a67 vsub.f32 s14, s14, s15 - 800b048: edd2 7a00 vldr s15, [r2] - 800b04c: ee77 7ac7 vsub.f32 s15, s15, s14 - 800b050: bfb8 it lt - 800b052: eef1 7a67 vneglt.f32 s15, s15 - 800b056: e760 b.n 800af1a - 800b058: bfc90fdb .word 0xbfc90fdb - 800b05c: 3fc90fdb .word 0x3fc90fdb - 800b060: 3edfffff .word 0x3edfffff - 800b064: 7149f2ca .word 0x7149f2ca - 800b068: 3f97ffff .word 0x3f97ffff - 800b06c: 3c8569d7 .word 0x3c8569d7 - 800b070: 3d4bda59 .word 0x3d4bda59 - 800b074: bd6ef16b .word 0xbd6ef16b - 800b078: 3d886b35 .word 0x3d886b35 - 800b07c: 3dba2e6e .word 0x3dba2e6e - 800b080: 3e124925 .word 0x3e124925 - 800b084: 3eaaaaab .word 0x3eaaaaab - 800b088: bd15a221 .word 0xbd15a221 - 800b08c: bd9d8795 .word 0xbd9d8795 - 800b090: bde38e38 .word 0xbde38e38 - 800b094: be4ccccd .word 0xbe4ccccd - 800b098: 401bffff .word 0x401bffff - 800b09c: 0800c0d4 .word 0x0800c0d4 - 800b0a0: 0800c0c4 .word 0x0800c0c4 - -0800b0a4 : - 800b0a4: ee10 3a10 vmov r3, s0 - 800b0a8: f033 4200 bics.w r2, r3, #2147483648 @ 0x80000000 - 800b0ac: d02b beq.n 800b106 - 800b0ae: f1b2 4fff cmp.w r2, #2139095040 @ 0x7f800000 - 800b0b2: d302 bcc.n 800b0ba - 800b0b4: ee30 0a00 vadd.f32 s0, s0, s0 - 800b0b8: 4770 bx lr - 800b0ba: f013 4fff tst.w r3, #2139095040 @ 0x7f800000 - 800b0be: d123 bne.n 800b108 - 800b0c0: 4b24 ldr r3, [pc, #144] @ (800b154 ) - 800b0c2: eddf 7a25 vldr s15, [pc, #148] @ 800b158 - 800b0c6: 4298 cmp r0, r3 - 800b0c8: ee20 0a27 vmul.f32 s0, s0, s15 - 800b0cc: db17 blt.n 800b0fe - 800b0ce: ee10 3a10 vmov r3, s0 - 800b0d2: f3c3 52c7 ubfx r2, r3, #23, #8 - 800b0d6: 3a19 subs r2, #25 - 800b0d8: f24c 3150 movw r1, #50000 @ 0xc350 - 800b0dc: 4288 cmp r0, r1 - 800b0de: dd15 ble.n 800b10c - 800b0e0: eddf 7a1e vldr s15, [pc, #120] @ 800b15c - 800b0e4: eddf 6a1e vldr s13, [pc, #120] @ 800b160 - 800b0e8: ee10 3a10 vmov r3, s0 - 800b0ec: eeb0 7a67 vmov.f32 s14, s15 - 800b0f0: 2b00 cmp r3, #0 - 800b0f2: bfb8 it lt - 800b0f4: eef0 7a66 vmovlt.f32 s15, s13 - 800b0f8: ee27 0a87 vmul.f32 s0, s15, s14 - 800b0fc: 4770 bx lr - 800b0fe: eddf 7a19 vldr s15, [pc, #100] @ 800b164 - 800b102: ee27 0a80 vmul.f32 s0, s15, s0 - 800b106: 4770 bx lr - 800b108: 0dd2 lsrs r2, r2, #23 - 800b10a: e7e5 b.n 800b0d8 - 800b10c: 4410 add r0, r2 - 800b10e: 28fe cmp r0, #254 @ 0xfe - 800b110: dce6 bgt.n 800b0e0 - 800b112: 2800 cmp r0, #0 - 800b114: dd06 ble.n 800b124 - 800b116: f023 43ff bic.w r3, r3, #2139095040 @ 0x7f800000 - 800b11a: ea43 53c0 orr.w r3, r3, r0, lsl #23 - 800b11e: ee00 3a10 vmov s0, r3 - 800b122: 4770 bx lr - 800b124: f110 0f16 cmn.w r0, #22 - 800b128: da09 bge.n 800b13e - 800b12a: eddf 7a0e vldr s15, [pc, #56] @ 800b164 - 800b12e: eddf 6a0e vldr s13, [pc, #56] @ 800b168 - 800b132: ee10 3a10 vmov r3, s0 - 800b136: eeb0 7a67 vmov.f32 s14, s15 - 800b13a: 2b00 cmp r3, #0 - 800b13c: e7d9 b.n 800b0f2 - 800b13e: 3019 adds r0, #25 - 800b140: f023 43ff bic.w r3, r3, #2139095040 @ 0x7f800000 - 800b144: ea43 53c0 orr.w r3, r3, r0, lsl #23 - 800b148: ed9f 0a08 vldr s0, [pc, #32] @ 800b16c - 800b14c: ee07 3a90 vmov s15, r3 - 800b150: e7d7 b.n 800b102 - 800b152: bf00 nop - 800b154: ffff3cb0 .word 0xffff3cb0 - 800b158: 4c000000 .word 0x4c000000 - 800b15c: 7149f2ca .word 0x7149f2ca - 800b160: f149f2ca .word 0xf149f2ca - 800b164: 0da24260 .word 0x0da24260 - 800b168: 8da24260 .word 0x8da24260 - 800b16c: 33000000 .word 0x33000000 - -0800b170 : - 800b170: b510 push {r4, lr} - 800b172: ed2d 8b02 vpush {d8} - 800b176: eeb0 8a40 vmov.f32 s16, s0 - 800b17a: 4604 mov r4, r0 - 800b17c: f7fc ff1a bl 8007fb4 <__errno> - 800b180: eeb0 0a48 vmov.f32 s0, s16 - 800b184: ecbd 8b02 vpop {d8} - 800b188: 6004 str r4, [r0, #0] - 800b18a: bd10 pop {r4, pc} - -0800b18c : - 800b18c: b130 cbz r0, 800b19c - 800b18e: eef1 7a40 vneg.f32 s15, s0 - 800b192: ee27 0a80 vmul.f32 s0, s15, s0 - 800b196: 2022 movs r0, #34 @ 0x22 - 800b198: f7ff bfea b.w 800b170 - 800b19c: eef0 7a40 vmov.f32 s15, s0 - 800b1a0: e7f7 b.n 800b192 - ... - -0800b1a4 <__math_uflowf>: - 800b1a4: ed9f 0a01 vldr s0, [pc, #4] @ 800b1ac <__math_uflowf+0x8> - 800b1a8: f7ff bff0 b.w 800b18c - 800b1ac: 10000000 .word 0x10000000 - -0800b1b0 <__math_oflowf>: - 800b1b0: ed9f 0a01 vldr s0, [pc, #4] @ 800b1b8 <__math_oflowf+0x8> - 800b1b4: f7ff bfea b.w 800b18c - 800b1b8: 70000000 .word 0x70000000 - -0800b1bc <__kernel_rem_pio2f>: - 800b1bc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800b1c0: ed2d 8b04 vpush {d8-d9} - 800b1c4: b0d9 sub sp, #356 @ 0x164 - 800b1c6: 4690 mov r8, r2 - 800b1c8: 9001 str r0, [sp, #4] - 800b1ca: 4ab6 ldr r2, [pc, #728] @ (800b4a4 <__kernel_rem_pio2f+0x2e8>) - 800b1cc: 9866 ldr r0, [sp, #408] @ 0x198 - 800b1ce: f118 0f04 cmn.w r8, #4 - 800b1d2: f852 a020 ldr.w sl, [r2, r0, lsl #2] - 800b1d6: 460f mov r7, r1 - 800b1d8: f103 3bff add.w fp, r3, #4294967295 - 800b1dc: db26 blt.n 800b22c <__kernel_rem_pio2f+0x70> - 800b1de: f1b8 0203 subs.w r2, r8, #3 - 800b1e2: bf48 it mi - 800b1e4: f108 0204 addmi.w r2, r8, #4 - 800b1e8: 10d2 asrs r2, r2, #3 - 800b1ea: 1c55 adds r5, r2, #1 - 800b1ec: 9967 ldr r1, [sp, #412] @ 0x19c - 800b1ee: ed9f 7ab1 vldr s14, [pc, #708] @ 800b4b4 <__kernel_rem_pio2f+0x2f8> - 800b1f2: 00e8 lsls r0, r5, #3 - 800b1f4: eba2 060b sub.w r6, r2, fp - 800b1f8: 9002 str r0, [sp, #8] - 800b1fa: eba8 05c5 sub.w r5, r8, r5, lsl #3 - 800b1fe: eb0a 0c0b add.w ip, sl, fp - 800b202: ac1c add r4, sp, #112 @ 0x70 - 800b204: eb01 0e86 add.w lr, r1, r6, lsl #2 - 800b208: 2000 movs r0, #0 - 800b20a: 4560 cmp r0, ip - 800b20c: dd10 ble.n 800b230 <__kernel_rem_pio2f+0x74> - 800b20e: a91c add r1, sp, #112 @ 0x70 - 800b210: eb01 0083 add.w r0, r1, r3, lsl #2 - 800b214: f50d 7988 add.w r9, sp, #272 @ 0x110 - 800b218: 2600 movs r6, #0 - 800b21a: 4556 cmp r6, sl - 800b21c: dc24 bgt.n 800b268 <__kernel_rem_pio2f+0xac> - 800b21e: f8dd e004 ldr.w lr, [sp, #4] - 800b222: eddf 7aa4 vldr s15, [pc, #656] @ 800b4b4 <__kernel_rem_pio2f+0x2f8> - 800b226: 4684 mov ip, r0 - 800b228: 2400 movs r4, #0 - 800b22a: e016 b.n 800b25a <__kernel_rem_pio2f+0x9e> - 800b22c: 2200 movs r2, #0 - 800b22e: e7dc b.n 800b1ea <__kernel_rem_pio2f+0x2e> - 800b230: 42c6 cmn r6, r0 - 800b232: bf5d ittte pl - 800b234: f85e 1020 ldrpl.w r1, [lr, r0, lsl #2] - 800b238: ee07 1a90 vmovpl s15, r1 - 800b23c: eef8 7ae7 vcvtpl.f32.s32 s15, s15 - 800b240: eef0 7a47 vmovmi.f32 s15, s14 - 800b244: ece4 7a01 vstmia r4!, {s15} - 800b248: 3001 adds r0, #1 - 800b24a: e7de b.n 800b20a <__kernel_rem_pio2f+0x4e> - 800b24c: ecfe 6a01 vldmia lr!, {s13} - 800b250: ed3c 7a01 vldmdb ip!, {s14} - 800b254: eee6 7a87 vfma.f32 s15, s13, s14 - 800b258: 3401 adds r4, #1 - 800b25a: 455c cmp r4, fp - 800b25c: ddf6 ble.n 800b24c <__kernel_rem_pio2f+0x90> - 800b25e: ece9 7a01 vstmia r9!, {s15} - 800b262: 3601 adds r6, #1 - 800b264: 3004 adds r0, #4 - 800b266: e7d8 b.n 800b21a <__kernel_rem_pio2f+0x5e> - 800b268: a908 add r1, sp, #32 - 800b26a: eb01 018a add.w r1, r1, sl, lsl #2 - 800b26e: 9104 str r1, [sp, #16] - 800b270: 9967 ldr r1, [sp, #412] @ 0x19c - 800b272: eddf 8a8f vldr s17, [pc, #572] @ 800b4b0 <__kernel_rem_pio2f+0x2f4> - 800b276: ed9f 9a8d vldr s18, [pc, #564] @ 800b4ac <__kernel_rem_pio2f+0x2f0> - 800b27a: eb01 0282 add.w r2, r1, r2, lsl #2 - 800b27e: 9203 str r2, [sp, #12] - 800b280: 4654 mov r4, sl - 800b282: 00a2 lsls r2, r4, #2 - 800b284: 9205 str r2, [sp, #20] - 800b286: aa58 add r2, sp, #352 @ 0x160 - 800b288: eb02 0284 add.w r2, r2, r4, lsl #2 - 800b28c: ed12 0a14 vldr s0, [r2, #-80] @ 0xffffffb0 - 800b290: a944 add r1, sp, #272 @ 0x110 - 800b292: aa08 add r2, sp, #32 - 800b294: eb01 0084 add.w r0, r1, r4, lsl #2 - 800b298: 4694 mov ip, r2 - 800b29a: 4626 mov r6, r4 - 800b29c: 2e00 cmp r6, #0 - 800b29e: dc4c bgt.n 800b33a <__kernel_rem_pio2f+0x17e> - 800b2a0: 4628 mov r0, r5 - 800b2a2: e9cd 2306 strd r2, r3, [sp, #24] - 800b2a6: f7ff fefd bl 800b0a4 - 800b2aa: eeb0 8a40 vmov.f32 s16, s0 - 800b2ae: eeb4 0a00 vmov.f32 s0, #64 @ 0x3e000000 0.125 - 800b2b2: ee28 0a00 vmul.f32 s0, s16, s0 - 800b2b6: f000 f9e9 bl 800b68c - 800b2ba: eef2 7a00 vmov.f32 s15, #32 @ 0x41000000 8.0 - 800b2be: eea0 8a67 vfms.f32 s16, s0, s15 - 800b2c2: 2d00 cmp r5, #0 - 800b2c4: e9dd 2306 ldrd r2, r3, [sp, #24] - 800b2c8: eefd 7ac8 vcvt.s32.f32 s15, s16 - 800b2cc: ee17 9a90 vmov r9, s15 - 800b2d0: eef8 7ae7 vcvt.f32.s32 s15, s15 - 800b2d4: ee38 8a67 vsub.f32 s16, s16, s15 - 800b2d8: dd41 ble.n 800b35e <__kernel_rem_pio2f+0x1a2> - 800b2da: f104 3cff add.w ip, r4, #4294967295 - 800b2de: a908 add r1, sp, #32 - 800b2e0: f1c5 0e08 rsb lr, r5, #8 - 800b2e4: f851 602c ldr.w r6, [r1, ip, lsl #2] - 800b2e8: fa46 f00e asr.w r0, r6, lr - 800b2ec: 4481 add r9, r0 - 800b2ee: fa00 f00e lsl.w r0, r0, lr - 800b2f2: 1a36 subs r6, r6, r0 - 800b2f4: f1c5 0007 rsb r0, r5, #7 - 800b2f8: f841 602c str.w r6, [r1, ip, lsl #2] - 800b2fc: 4106 asrs r6, r0 - 800b2fe: 2e00 cmp r6, #0 - 800b300: dd3c ble.n 800b37c <__kernel_rem_pio2f+0x1c0> - 800b302: f04f 0e00 mov.w lr, #0 - 800b306: f109 0901 add.w r9, r9, #1 - 800b30a: 4670 mov r0, lr - 800b30c: 4574 cmp r4, lr - 800b30e: dc68 bgt.n 800b3e2 <__kernel_rem_pio2f+0x226> - 800b310: 2d00 cmp r5, #0 - 800b312: dd03 ble.n 800b31c <__kernel_rem_pio2f+0x160> - 800b314: 2d01 cmp r5, #1 - 800b316: d074 beq.n 800b402 <__kernel_rem_pio2f+0x246> - 800b318: 2d02 cmp r5, #2 - 800b31a: d07d beq.n 800b418 <__kernel_rem_pio2f+0x25c> - 800b31c: 2e02 cmp r6, #2 - 800b31e: d12d bne.n 800b37c <__kernel_rem_pio2f+0x1c0> - 800b320: eeb7 0a00 vmov.f32 s0, #112 @ 0x3f800000 1.0 - 800b324: ee30 8a48 vsub.f32 s16, s0, s16 - 800b328: b340 cbz r0, 800b37c <__kernel_rem_pio2f+0x1c0> - 800b32a: 4628 mov r0, r5 - 800b32c: 9306 str r3, [sp, #24] - 800b32e: f7ff feb9 bl 800b0a4 - 800b332: 9b06 ldr r3, [sp, #24] - 800b334: ee38 8a40 vsub.f32 s16, s16, s0 - 800b338: e020 b.n 800b37c <__kernel_rem_pio2f+0x1c0> - 800b33a: ee60 7a28 vmul.f32 s15, s0, s17 - 800b33e: 3e01 subs r6, #1 - 800b340: eefd 7ae7 vcvt.s32.f32 s15, s15 - 800b344: eef8 7ae7 vcvt.f32.s32 s15, s15 - 800b348: eea7 0ac9 vfms.f32 s0, s15, s18 - 800b34c: eebd 0ac0 vcvt.s32.f32 s0, s0 - 800b350: ecac 0a01 vstmia ip!, {s0} - 800b354: ed30 0a01 vldmdb r0!, {s0} - 800b358: ee37 0a80 vadd.f32 s0, s15, s0 - 800b35c: e79e b.n 800b29c <__kernel_rem_pio2f+0xe0> - 800b35e: d105 bne.n 800b36c <__kernel_rem_pio2f+0x1b0> - 800b360: 1e60 subs r0, r4, #1 - 800b362: a908 add r1, sp, #32 - 800b364: f851 6020 ldr.w r6, [r1, r0, lsl #2] - 800b368: 11f6 asrs r6, r6, #7 - 800b36a: e7c8 b.n 800b2fe <__kernel_rem_pio2f+0x142> - 800b36c: eef6 7a00 vmov.f32 s15, #96 @ 0x3f000000 0.5 - 800b370: eeb4 8ae7 vcmpe.f32 s16, s15 - 800b374: eef1 fa10 vmrs APSR_nzcv, fpscr - 800b378: da31 bge.n 800b3de <__kernel_rem_pio2f+0x222> - 800b37a: 2600 movs r6, #0 - 800b37c: eeb5 8a40 vcmp.f32 s16, #0.0 - 800b380: eef1 fa10 vmrs APSR_nzcv, fpscr - 800b384: f040 8098 bne.w 800b4b8 <__kernel_rem_pio2f+0x2fc> - 800b388: 1e60 subs r0, r4, #1 - 800b38a: 2200 movs r2, #0 - 800b38c: 4550 cmp r0, sl - 800b38e: da4b bge.n 800b428 <__kernel_rem_pio2f+0x26c> - 800b390: 2a00 cmp r2, #0 - 800b392: d065 beq.n 800b460 <__kernel_rem_pio2f+0x2a4> - 800b394: 3c01 subs r4, #1 - 800b396: ab08 add r3, sp, #32 - 800b398: 3d08 subs r5, #8 - 800b39a: f853 3024 ldr.w r3, [r3, r4, lsl #2] - 800b39e: 2b00 cmp r3, #0 - 800b3a0: d0f8 beq.n 800b394 <__kernel_rem_pio2f+0x1d8> - 800b3a2: 4628 mov r0, r5 - 800b3a4: eeb7 0a00 vmov.f32 s0, #112 @ 0x3f800000 1.0 - 800b3a8: f7ff fe7c bl 800b0a4 - 800b3ac: 1c63 adds r3, r4, #1 - 800b3ae: aa44 add r2, sp, #272 @ 0x110 - 800b3b0: ed9f 7a3f vldr s14, [pc, #252] @ 800b4b0 <__kernel_rem_pio2f+0x2f4> - 800b3b4: 0099 lsls r1, r3, #2 - 800b3b6: eb02 0283 add.w r2, r2, r3, lsl #2 - 800b3ba: 4623 mov r3, r4 - 800b3bc: 2b00 cmp r3, #0 - 800b3be: f280 80a9 bge.w 800b514 <__kernel_rem_pio2f+0x358> - 800b3c2: 4623 mov r3, r4 - 800b3c4: 2b00 cmp r3, #0 - 800b3c6: f2c0 80c7 blt.w 800b558 <__kernel_rem_pio2f+0x39c> - 800b3ca: aa44 add r2, sp, #272 @ 0x110 - 800b3cc: eb02 0583 add.w r5, r2, r3, lsl #2 - 800b3d0: f8df c0d4 ldr.w ip, [pc, #212] @ 800b4a8 <__kernel_rem_pio2f+0x2ec> - 800b3d4: eddf 7a37 vldr s15, [pc, #220] @ 800b4b4 <__kernel_rem_pio2f+0x2f8> - 800b3d8: 2000 movs r0, #0 - 800b3da: 1ae2 subs r2, r4, r3 - 800b3dc: e0b1 b.n 800b542 <__kernel_rem_pio2f+0x386> - 800b3de: 2602 movs r6, #2 - 800b3e0: e78f b.n 800b302 <__kernel_rem_pio2f+0x146> - 800b3e2: f852 1b04 ldr.w r1, [r2], #4 - 800b3e6: b948 cbnz r0, 800b3fc <__kernel_rem_pio2f+0x240> - 800b3e8: b121 cbz r1, 800b3f4 <__kernel_rem_pio2f+0x238> - 800b3ea: f5c1 7180 rsb r1, r1, #256 @ 0x100 - 800b3ee: f842 1c04 str.w r1, [r2, #-4] - 800b3f2: 2101 movs r1, #1 - 800b3f4: f10e 0e01 add.w lr, lr, #1 - 800b3f8: 4608 mov r0, r1 - 800b3fa: e787 b.n 800b30c <__kernel_rem_pio2f+0x150> - 800b3fc: f1c1 01ff rsb r1, r1, #255 @ 0xff - 800b400: e7f5 b.n 800b3ee <__kernel_rem_pio2f+0x232> - 800b402: f104 3cff add.w ip, r4, #4294967295 - 800b406: aa08 add r2, sp, #32 - 800b408: f852 202c ldr.w r2, [r2, ip, lsl #2] - 800b40c: f002 027f and.w r2, r2, #127 @ 0x7f - 800b410: a908 add r1, sp, #32 - 800b412: f841 202c str.w r2, [r1, ip, lsl #2] - 800b416: e781 b.n 800b31c <__kernel_rem_pio2f+0x160> - 800b418: f104 3cff add.w ip, r4, #4294967295 - 800b41c: aa08 add r2, sp, #32 - 800b41e: f852 202c ldr.w r2, [r2, ip, lsl #2] - 800b422: f002 023f and.w r2, r2, #63 @ 0x3f - 800b426: e7f3 b.n 800b410 <__kernel_rem_pio2f+0x254> - 800b428: a908 add r1, sp, #32 - 800b42a: f851 1020 ldr.w r1, [r1, r0, lsl #2] - 800b42e: 3801 subs r0, #1 - 800b430: 430a orrs r2, r1 - 800b432: e7ab b.n 800b38c <__kernel_rem_pio2f+0x1d0> - 800b434: 3201 adds r2, #1 - 800b436: f850 6d04 ldr.w r6, [r0, #-4]! - 800b43a: 2e00 cmp r6, #0 - 800b43c: d0fa beq.n 800b434 <__kernel_rem_pio2f+0x278> - 800b43e: 9905 ldr r1, [sp, #20] - 800b440: f501 71b0 add.w r1, r1, #352 @ 0x160 - 800b444: eb0d 0001 add.w r0, sp, r1 - 800b448: 18e6 adds r6, r4, r3 - 800b44a: a91c add r1, sp, #112 @ 0x70 - 800b44c: f104 0c01 add.w ip, r4, #1 - 800b450: 384c subs r0, #76 @ 0x4c - 800b452: eb01 0686 add.w r6, r1, r6, lsl #2 - 800b456: 4422 add r2, r4 - 800b458: 4562 cmp r2, ip - 800b45a: da04 bge.n 800b466 <__kernel_rem_pio2f+0x2aa> - 800b45c: 4614 mov r4, r2 - 800b45e: e710 b.n 800b282 <__kernel_rem_pio2f+0xc6> - 800b460: 9804 ldr r0, [sp, #16] - 800b462: 2201 movs r2, #1 - 800b464: e7e7 b.n 800b436 <__kernel_rem_pio2f+0x27a> - 800b466: 9903 ldr r1, [sp, #12] - 800b468: f8dd e004 ldr.w lr, [sp, #4] - 800b46c: f851 102c ldr.w r1, [r1, ip, lsl #2] - 800b470: 9105 str r1, [sp, #20] - 800b472: ee07 1a90 vmov s15, r1 - 800b476: eef8 7ae7 vcvt.f32.s32 s15, s15 - 800b47a: 2400 movs r4, #0 - 800b47c: ece6 7a01 vstmia r6!, {s15} - 800b480: eddf 7a0c vldr s15, [pc, #48] @ 800b4b4 <__kernel_rem_pio2f+0x2f8> - 800b484: 46b1 mov r9, r6 - 800b486: 455c cmp r4, fp - 800b488: dd04 ble.n 800b494 <__kernel_rem_pio2f+0x2d8> - 800b48a: ece0 7a01 vstmia r0!, {s15} - 800b48e: f10c 0c01 add.w ip, ip, #1 - 800b492: e7e1 b.n 800b458 <__kernel_rem_pio2f+0x29c> - 800b494: ecfe 6a01 vldmia lr!, {s13} - 800b498: ed39 7a01 vldmdb r9!, {s14} - 800b49c: 3401 adds r4, #1 - 800b49e: eee6 7a87 vfma.f32 s15, s13, s14 - 800b4a2: e7f0 b.n 800b486 <__kernel_rem_pio2f+0x2ca> - 800b4a4: 0800c110 .word 0x0800c110 - 800b4a8: 0800c0e4 .word 0x0800c0e4 - 800b4ac: 43800000 .word 0x43800000 - 800b4b0: 3b800000 .word 0x3b800000 - 800b4b4: 00000000 .word 0x00000000 - 800b4b8: 9b02 ldr r3, [sp, #8] - 800b4ba: eeb0 0a48 vmov.f32 s0, s16 - 800b4be: eba3 0008 sub.w r0, r3, r8 - 800b4c2: f7ff fdef bl 800b0a4 - 800b4c6: ed1f 7a07 vldr s14, [pc, #-28] @ 800b4ac <__kernel_rem_pio2f+0x2f0> - 800b4ca: eeb4 0ac7 vcmpe.f32 s0, s14 - 800b4ce: eef1 fa10 vmrs APSR_nzcv, fpscr - 800b4d2: db19 blt.n 800b508 <__kernel_rem_pio2f+0x34c> - 800b4d4: ed5f 7a0a vldr s15, [pc, #-40] @ 800b4b0 <__kernel_rem_pio2f+0x2f4> - 800b4d8: ee60 7a27 vmul.f32 s15, s0, s15 - 800b4dc: aa08 add r2, sp, #32 - 800b4de: eefd 7ae7 vcvt.s32.f32 s15, s15 - 800b4e2: 3508 adds r5, #8 - 800b4e4: eef8 7ae7 vcvt.f32.s32 s15, s15 - 800b4e8: eea7 0ac7 vfms.f32 s0, s15, s14 - 800b4ec: eefd 7ae7 vcvt.s32.f32 s15, s15 - 800b4f0: eebd 0ac0 vcvt.s32.f32 s0, s0 - 800b4f4: ee10 3a10 vmov r3, s0 - 800b4f8: f842 3024 str.w r3, [r2, r4, lsl #2] - 800b4fc: ee17 3a90 vmov r3, s15 - 800b500: 3401 adds r4, #1 - 800b502: f842 3024 str.w r3, [r2, r4, lsl #2] - 800b506: e74c b.n 800b3a2 <__kernel_rem_pio2f+0x1e6> - 800b508: eebd 0ac0 vcvt.s32.f32 s0, s0 - 800b50c: aa08 add r2, sp, #32 - 800b50e: ee10 3a10 vmov r3, s0 - 800b512: e7f6 b.n 800b502 <__kernel_rem_pio2f+0x346> - 800b514: a808 add r0, sp, #32 - 800b516: f850 0023 ldr.w r0, [r0, r3, lsl #2] - 800b51a: 9001 str r0, [sp, #4] - 800b51c: ee07 0a90 vmov s15, r0 - 800b520: eef8 7ae7 vcvt.f32.s32 s15, s15 - 800b524: 3b01 subs r3, #1 - 800b526: ee67 7a80 vmul.f32 s15, s15, s0 - 800b52a: ee20 0a07 vmul.f32 s0, s0, s14 - 800b52e: ed62 7a01 vstmdb r2!, {s15} - 800b532: e743 b.n 800b3bc <__kernel_rem_pio2f+0x200> - 800b534: ecfc 6a01 vldmia ip!, {s13} - 800b538: ecb5 7a01 vldmia r5!, {s14} - 800b53c: eee6 7a87 vfma.f32 s15, s13, s14 - 800b540: 3001 adds r0, #1 - 800b542: 4550 cmp r0, sl - 800b544: dc01 bgt.n 800b54a <__kernel_rem_pio2f+0x38e> - 800b546: 4290 cmp r0, r2 - 800b548: ddf4 ble.n 800b534 <__kernel_rem_pio2f+0x378> - 800b54a: a858 add r0, sp, #352 @ 0x160 - 800b54c: eb00 0282 add.w r2, r0, r2, lsl #2 - 800b550: ed42 7a28 vstr s15, [r2, #-160] @ 0xffffff60 - 800b554: 3b01 subs r3, #1 - 800b556: e735 b.n 800b3c4 <__kernel_rem_pio2f+0x208> - 800b558: 9b66 ldr r3, [sp, #408] @ 0x198 - 800b55a: 2b02 cmp r3, #2 - 800b55c: dc09 bgt.n 800b572 <__kernel_rem_pio2f+0x3b6> - 800b55e: 2b00 cmp r3, #0 - 800b560: dc27 bgt.n 800b5b2 <__kernel_rem_pio2f+0x3f6> - 800b562: d040 beq.n 800b5e6 <__kernel_rem_pio2f+0x42a> - 800b564: f009 0007 and.w r0, r9, #7 - 800b568: b059 add sp, #356 @ 0x164 - 800b56a: ecbd 8b04 vpop {d8-d9} - 800b56e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800b572: 9b66 ldr r3, [sp, #408] @ 0x198 - 800b574: 2b03 cmp r3, #3 - 800b576: d1f5 bne.n 800b564 <__kernel_rem_pio2f+0x3a8> - 800b578: aa30 add r2, sp, #192 @ 0xc0 - 800b57a: 1f0b subs r3, r1, #4 - 800b57c: 4413 add r3, r2 - 800b57e: 461a mov r2, r3 - 800b580: 4620 mov r0, r4 - 800b582: 2800 cmp r0, #0 - 800b584: dc50 bgt.n 800b628 <__kernel_rem_pio2f+0x46c> - 800b586: 4622 mov r2, r4 - 800b588: 2a01 cmp r2, #1 - 800b58a: dc5d bgt.n 800b648 <__kernel_rem_pio2f+0x48c> - 800b58c: ab30 add r3, sp, #192 @ 0xc0 - 800b58e: ed5f 7a37 vldr s15, [pc, #-220] @ 800b4b4 <__kernel_rem_pio2f+0x2f8> - 800b592: 440b add r3, r1 - 800b594: 2c01 cmp r4, #1 - 800b596: dc67 bgt.n 800b668 <__kernel_rem_pio2f+0x4ac> - 800b598: eddd 6a30 vldr s13, [sp, #192] @ 0xc0 - 800b59c: ed9d 7a31 vldr s14, [sp, #196] @ 0xc4 - 800b5a0: 2e00 cmp r6, #0 - 800b5a2: d167 bne.n 800b674 <__kernel_rem_pio2f+0x4b8> - 800b5a4: edc7 6a00 vstr s13, [r7] - 800b5a8: ed87 7a01 vstr s14, [r7, #4] - 800b5ac: edc7 7a02 vstr s15, [r7, #8] - 800b5b0: e7d8 b.n 800b564 <__kernel_rem_pio2f+0x3a8> - 800b5b2: ab30 add r3, sp, #192 @ 0xc0 - 800b5b4: ed1f 7a41 vldr s14, [pc, #-260] @ 800b4b4 <__kernel_rem_pio2f+0x2f8> - 800b5b8: 440b add r3, r1 - 800b5ba: 4622 mov r2, r4 - 800b5bc: 2a00 cmp r2, #0 - 800b5be: da24 bge.n 800b60a <__kernel_rem_pio2f+0x44e> - 800b5c0: b34e cbz r6, 800b616 <__kernel_rem_pio2f+0x45a> - 800b5c2: eef1 7a47 vneg.f32 s15, s14 - 800b5c6: edc7 7a00 vstr s15, [r7] - 800b5ca: eddd 7a30 vldr s15, [sp, #192] @ 0xc0 - 800b5ce: ee77 7ac7 vsub.f32 s15, s15, s14 - 800b5d2: aa31 add r2, sp, #196 @ 0xc4 - 800b5d4: 2301 movs r3, #1 - 800b5d6: 429c cmp r4, r3 - 800b5d8: da20 bge.n 800b61c <__kernel_rem_pio2f+0x460> - 800b5da: b10e cbz r6, 800b5e0 <__kernel_rem_pio2f+0x424> - 800b5dc: eef1 7a67 vneg.f32 s15, s15 - 800b5e0: edc7 7a01 vstr s15, [r7, #4] - 800b5e4: e7be b.n 800b564 <__kernel_rem_pio2f+0x3a8> - 800b5e6: ab30 add r3, sp, #192 @ 0xc0 - 800b5e8: ed5f 7a4e vldr s15, [pc, #-312] @ 800b4b4 <__kernel_rem_pio2f+0x2f8> - 800b5ec: 440b add r3, r1 - 800b5ee: 2c00 cmp r4, #0 - 800b5f0: da05 bge.n 800b5fe <__kernel_rem_pio2f+0x442> - 800b5f2: b10e cbz r6, 800b5f8 <__kernel_rem_pio2f+0x43c> - 800b5f4: eef1 7a67 vneg.f32 s15, s15 - 800b5f8: edc7 7a00 vstr s15, [r7] - 800b5fc: e7b2 b.n 800b564 <__kernel_rem_pio2f+0x3a8> - 800b5fe: ed33 7a01 vldmdb r3!, {s14} - 800b602: 3c01 subs r4, #1 - 800b604: ee77 7a87 vadd.f32 s15, s15, s14 - 800b608: e7f1 b.n 800b5ee <__kernel_rem_pio2f+0x432> - 800b60a: ed73 7a01 vldmdb r3!, {s15} - 800b60e: 3a01 subs r2, #1 - 800b610: ee37 7a27 vadd.f32 s14, s14, s15 - 800b614: e7d2 b.n 800b5bc <__kernel_rem_pio2f+0x400> - 800b616: eef0 7a47 vmov.f32 s15, s14 - 800b61a: e7d4 b.n 800b5c6 <__kernel_rem_pio2f+0x40a> - 800b61c: ecb2 7a01 vldmia r2!, {s14} - 800b620: 3301 adds r3, #1 - 800b622: ee77 7a87 vadd.f32 s15, s15, s14 - 800b626: e7d6 b.n 800b5d6 <__kernel_rem_pio2f+0x41a> - 800b628: ed72 7a01 vldmdb r2!, {s15} - 800b62c: edd2 6a01 vldr s13, [r2, #4] - 800b630: ee37 7aa6 vadd.f32 s14, s15, s13 - 800b634: 3801 subs r0, #1 - 800b636: ee77 7ac7 vsub.f32 s15, s15, s14 - 800b63a: ed82 7a00 vstr s14, [r2] - 800b63e: ee77 7aa6 vadd.f32 s15, s15, s13 - 800b642: edc2 7a01 vstr s15, [r2, #4] - 800b646: e79c b.n 800b582 <__kernel_rem_pio2f+0x3c6> - 800b648: ed73 7a01 vldmdb r3!, {s15} - 800b64c: edd3 6a01 vldr s13, [r3, #4] - 800b650: ee37 7aa6 vadd.f32 s14, s15, s13 - 800b654: 3a01 subs r2, #1 - 800b656: ee77 7ac7 vsub.f32 s15, s15, s14 - 800b65a: ed83 7a00 vstr s14, [r3] - 800b65e: ee77 7aa6 vadd.f32 s15, s15, s13 - 800b662: edc3 7a01 vstr s15, [r3, #4] - 800b666: e78f b.n 800b588 <__kernel_rem_pio2f+0x3cc> - 800b668: ed33 7a01 vldmdb r3!, {s14} - 800b66c: 3c01 subs r4, #1 - 800b66e: ee77 7a87 vadd.f32 s15, s15, s14 - 800b672: e78f b.n 800b594 <__kernel_rem_pio2f+0x3d8> - 800b674: eef1 6a66 vneg.f32 s13, s13 - 800b678: eeb1 7a47 vneg.f32 s14, s14 - 800b67c: edc7 6a00 vstr s13, [r7] - 800b680: ed87 7a01 vstr s14, [r7, #4] - 800b684: eef1 7a67 vneg.f32 s15, s15 - 800b688: e790 b.n 800b5ac <__kernel_rem_pio2f+0x3f0> - 800b68a: bf00 nop - -0800b68c : - 800b68c: ee10 3a10 vmov r3, s0 - 800b690: f3c3 52c7 ubfx r2, r3, #23, #8 - 800b694: 3a7f subs r2, #127 @ 0x7f - 800b696: 2a16 cmp r2, #22 - 800b698: f023 4100 bic.w r1, r3, #2147483648 @ 0x80000000 - 800b69c: dc2b bgt.n 800b6f6 - 800b69e: 2a00 cmp r2, #0 - 800b6a0: da12 bge.n 800b6c8 - 800b6a2: eddf 7a19 vldr s15, [pc, #100] @ 800b708 - 800b6a6: ee30 0a27 vadd.f32 s0, s0, s15 - 800b6aa: eeb5 0ac0 vcmpe.f32 s0, #0.0 - 800b6ae: eef1 fa10 vmrs APSR_nzcv, fpscr - 800b6b2: dd06 ble.n 800b6c2 - 800b6b4: 2b00 cmp r3, #0 - 800b6b6: da24 bge.n 800b702 - 800b6b8: 2900 cmp r1, #0 - 800b6ba: 4b14 ldr r3, [pc, #80] @ (800b70c ) - 800b6bc: bf08 it eq - 800b6be: f04f 4300 moveq.w r3, #2147483648 @ 0x80000000 - 800b6c2: ee00 3a10 vmov s0, r3 - 800b6c6: 4770 bx lr - 800b6c8: 4911 ldr r1, [pc, #68] @ (800b710 ) - 800b6ca: 4111 asrs r1, r2 - 800b6cc: 420b tst r3, r1 - 800b6ce: d0fa beq.n 800b6c6 - 800b6d0: eddf 7a0d vldr s15, [pc, #52] @ 800b708 - 800b6d4: ee30 0a27 vadd.f32 s0, s0, s15 - 800b6d8: eeb5 0ac0 vcmpe.f32 s0, #0.0 - 800b6dc: eef1 fa10 vmrs APSR_nzcv, fpscr - 800b6e0: ddef ble.n 800b6c2 - 800b6e2: 2b00 cmp r3, #0 - 800b6e4: bfbe ittt lt - 800b6e6: f44f 0000 movlt.w r0, #8388608 @ 0x800000 - 800b6ea: fa40 f202 asrlt.w r2, r0, r2 - 800b6ee: 189b addlt r3, r3, r2 - 800b6f0: ea23 0301 bic.w r3, r3, r1 - 800b6f4: e7e5 b.n 800b6c2 - 800b6f6: f1b1 4fff cmp.w r1, #2139095040 @ 0x7f800000 - 800b6fa: d3e4 bcc.n 800b6c6 - 800b6fc: ee30 0a00 vadd.f32 s0, s0, s0 - 800b700: 4770 bx lr - 800b702: 2300 movs r3, #0 - 800b704: e7dd b.n 800b6c2 - 800b706: bf00 nop - 800b708: 7149f2ca .word 0x7149f2ca - 800b70c: bf800000 .word 0xbf800000 - 800b710: 007fffff .word 0x007fffff - -0800b714 <_init>: - 800b714: b5f8 push {r3, r4, r5, r6, r7, lr} - 800b716: bf00 nop - 800b718: bcf8 pop {r3, r4, r5, r6, r7} - 800b71a: bc08 pop {r3} - 800b71c: 469e mov lr, r3 - 800b71e: 4770 bx lr - -0800b720 <_fini>: - 800b720: b5f8 push {r3, r4, r5, r6, r7, lr} - 800b722: bf00 nop - 800b724: bcf8 pop {r3, r4, r5, r6, r7} - 800b726: bc08 pop {r3} - 800b728: 469e mov lr, r3 - 800b72a: 4770 bx lr +0800563c <_fini>: + 800563c: b5f8 push {r3, r4, r5, r6, r7, lr} + 800563e: bf00 nop + 8005640: bcf8 pop {r3, r4, r5, r6, r7} + 8005642: bc08 pop {r3} + 8005644: 469e mov lr, r3 + 8005646: 4770 bx lr diff --git a/Debug/moto-perf.map b/Debug/moto-perf.map index 7b855c1..7c52a54 100644 --- a/Debug/moto-perf.map +++ b/Debug/moto-perf.map @@ -10,10 +10,8 @@ C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.external C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) (__stdio_exit_handler) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) (_fwalk_sglue) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) - ./Core/Src/main.o (printf) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) - ./Core/Src/moto_config.o (snprintf) + ./Core/Src/gc9a01.o (snprintf) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) (__sread) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) @@ -25,7 +23,7 @@ C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.external C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) (errno) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) (_impure_ptr) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) (_impure_ptr) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) (_lseek_r) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) @@ -41,7 +39,7 @@ C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.external C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memchr.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) (memchr) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-strlen.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) (strlen) + ./Core/Src/gc9a01.o (strlen) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) (_dtoa_r) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) @@ -56,16 +54,8 @@ C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.external C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) (_Balloc) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) (_svfprintf_r) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) (_vfprintf_r) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) (_fflush_r) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) (__sfvwrite_r) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) (__swbuf_r) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) (__swsetup_r) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) (memmove) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) @@ -90,20 +80,28 @@ C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.external C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) (_ctype_) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) (fiprintf) +C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) (abort) +C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) (_malloc_usable_size_r) +C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) (_vfprintf_r) +C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) (__sfvwrite_r) +C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) (__swbuf_r) +C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) (__swsetup_r) +C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) (raise) +C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) + C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) (_kill_r) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) (__smakebuf_r) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) (_fstat_r) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) (_isatty_r) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) (abort) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) (_malloc_usable_size_r) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) (raise) -C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) - C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) (_kill_r) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) ./Core/Src/FusionAhrs.o (asinf) C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) @@ -207,14 +205,66 @@ Discarded input sections .text 0x00000000 0x0 ./Core/Src/FusionAhrs.o .data 0x00000000 0x0 ./Core/Src/FusionAhrs.o .bss 0x00000000 0x0 ./Core/Src/FusionAhrs.o + .text.FusionDegreesToRadians + 0x00000000 0x28 ./Core/Src/FusionAhrs.o + .text.FusionRadiansToDegrees + 0x00000000 0x28 ./Core/Src/FusionAhrs.o + .text.FusionAsin + 0x00000000 0x58 ./Core/Src/FusionAhrs.o + .text.FusionFastInverseSqrt + 0x00000000 0x60 ./Core/Src/FusionAhrs.o + .text.FusionVectorIsZero + 0x00000000 0x60 ./Core/Src/FusionAhrs.o + .text.FusionVectorAdd + 0x00000000 0x9c ./Core/Src/FusionAhrs.o .text.FusionVectorSubtract 0x00000000 0x9c ./Core/Src/FusionAhrs.o + .text.FusionVectorSum + 0x00000000 0x40 ./Core/Src/FusionAhrs.o + .text.FusionVectorMultiplyScalar + 0x00000000 0x88 ./Core/Src/FusionAhrs.o + .text.FusionVectorHadamardProduct + 0x00000000 0x9c ./Core/Src/FusionAhrs.o + .text.FusionVectorCrossProduct + 0x00000000 0xcc ./Core/Src/FusionAhrs.o + .text.FusionVectorDotProduct + 0x00000000 0xac ./Core/Src/FusionAhrs.o + .text.FusionVectorMagnitudeSquared + 0x00000000 0x94 ./Core/Src/FusionAhrs.o + .text.FusionVectorMagnitude + 0x00000000 0x54 ./Core/Src/FusionAhrs.o + .text.FusionVectorNormalise + 0x00000000 0xa6 ./Core/Src/FusionAhrs.o + .text.FusionQuaternionAdd + 0x00000000 0xc4 ./Core/Src/FusionAhrs.o .text.FusionQuaternionMultiply 0x00000000 0x184 ./Core/Src/FusionAhrs.o + .text.FusionQuaternionMultiplyVector + 0x00000000 0x140 ./Core/Src/FusionAhrs.o + .text.FusionQuaternionNormalise + 0x00000000 0xea ./Core/Src/FusionAhrs.o + .rodata 0x00000000 0x18 ./Core/Src/FusionAhrs.o + .text.FusionAhrsInitialise + 0x00000000 0x3c ./Core/Src/FusionAhrs.o + .text.FusionAhrsReset + 0x00000000 0xc8 ./Core/Src/FusionAhrs.o + .text.FusionAhrsSetSettings + 0x00000000 0x170 ./Core/Src/FusionAhrs.o + .text.FusionAhrsUpdate + 0x00000000 0x71e ./Core/Src/FusionAhrs.o + .text.HalfGravity + 0x00000000 0x17a ./Core/Src/FusionAhrs.o + .text.HalfMagnetic + 0x00000000 0x214 ./Core/Src/FusionAhrs.o + .text.Feedback + 0x00000000 0x16a ./Core/Src/FusionAhrs.o + .text.Clamp 0x00000000 0x32 ./Core/Src/FusionAhrs.o .text.FusionAhrsUpdateNoMagnetometer 0x00000000 0xb4 ./Core/Src/FusionAhrs.o .text.FusionAhrsUpdateExternalHeading 0x00000000 0x14a ./Core/Src/FusionAhrs.o + .text.FusionAhrsGetQuaternion + 0x00000000 0x46 ./Core/Src/FusionAhrs.o .text.FusionAhrsSetQuaternion 0x00000000 0x40 ./Core/Src/FusionAhrs.o .text.FusionAhrsGetGravity @@ -223,8 +273,173 @@ Discarded input sections 0x00000000 0x12e ./Core/Src/FusionAhrs.o .text.FusionAhrsGetEarthAcceleration 0x00000000 0x234 ./Core/Src/FusionAhrs.o + .text.FusionAhrsGetInternalStates + 0x00000000 0x11c ./Core/Src/FusionAhrs.o + .text.FusionAhrsGetFlags + 0x00000000 0x6a ./Core/Src/FusionAhrs.o .text.FusionAhrsSetHeading 0x00000000 0x12c ./Core/Src/FusionAhrs.o + .debug_info 0x00000000 0xf05 ./Core/Src/FusionAhrs.o + .debug_abbrev 0x00000000 0x2bd ./Core/Src/FusionAhrs.o + .debug_aranges + 0x00000000 0x140 ./Core/Src/FusionAhrs.o + .debug_rnglists + 0x00000000 0x104 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x1ad ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0xad8 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x201 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x22 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x5b ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x2a ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x94 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x43 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x34 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x190 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x57 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x370 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x16 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x4a ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x34 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x10 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x58 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x8e ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x1c ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x185 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x186 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x22 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x103 ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x6a ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x1df ./Core/Src/FusionAhrs.o + .debug_macro 0x00000000 0x9a ./Core/Src/FusionAhrs.o + .debug_line 0x00000000 0x13f0 ./Core/Src/FusionAhrs.o + .debug_str 0x00000000 0x8b2d ./Core/Src/FusionAhrs.o + .comment 0x00000000 0x44 ./Core/Src/FusionAhrs.o + .debug_frame 0x00000000 0x5bc ./Core/Src/FusionAhrs.o + .ARM.attributes + 0x00000000 0x34 ./Core/Src/FusionAhrs.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/gc9a01.o + .text 0x00000000 0x0 ./Core/Src/gc9a01.o + .data 0x00000000 0x0 ./Core/Src/gc9a01.o + .bss 0x00000000 0x0 ./Core/Src/gc9a01.o + .rodata.font8x8_basic + 0x00000000 0x400 ./Core/Src/gc9a01.o + .text.GC9A01_DisplayOff + 0x00000000 0xe ./Core/Src/gc9a01.o + .text.GC9A01_SetRotation + 0x00000000 0x54 ./Core/Src/gc9a01.o + .text.GC9A01_FillCircleScreen + 0x00000000 0x15c ./Core/Src/gc9a01.o + .text.GC9A01_SetPixel + 0x00000000 0x50 ./Core/Src/gc9a01.o + .text.GC9A01_DrawLine + 0x00000000 0xd6 ./Core/Src/gc9a01.o + .text.GC9A01_DrawRect + 0x00000000 0xc0 ./Core/Src/gc9a01.o + .text.GC9A01_DrawCircle + 0x00000000 0x1b4 ./Core/Src/gc9a01.o + .text.GC9A01_FillCircle + 0x00000000 0xaa ./Core/Src/gc9a01.o + .text.GC9A01_DrawChar + 0x00000000 0x160 ./Core/Src/gc9a01.o + .text.GC9A01_DrawString + 0x00000000 0x5a ./Core/Src/gc9a01.o + .text.GC9A01_RGB565 + 0x00000000 0x50 ./Core/Src/gc9a01.o + .text.GC9A01_IsInCircle + 0x00000000 0x42 ./Core/Src/gc9a01.o + .rodata 0x00000000 0x5 ./Core/Src/gc9a01.o + .text.GC9A01_DrawGauge + 0x00000000 0x1d4 ./Core/Src/gc9a01.o + .text.GC9A01_DrawAngleIndicator + 0x00000000 0x100 ./Core/Src/gc9a01.o + .text.GC9A01_DrawStateIndicator + 0x00000000 0x60 ./Core/Src/gc9a01.o + .bss.buffer.0 0x00000000 0x400 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0xad8 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x22 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x103 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x6a ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x1df ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x190 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x22 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x2a ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x43 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x34 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x370 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x16 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x4a ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x34 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x10 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x58 ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x8e ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x1c ./Core/Src/gc9a01.o + .debug_macro 0x00000000 0x185 ./Core/Src/gc9a01.o + .group 0x00000000 0xc ./Core/Src/icm20948.o .group 0x00000000 0xc ./Core/Src/icm20948.o .group 0x00000000 0xc ./Core/Src/icm20948.o .group 0x00000000 0xc ./Core/Src/icm20948.o @@ -267,14 +482,72 @@ Discarded input sections .bss 0x00000000 0x0 ./Core/Src/icm20948.o .text.read_register 0x00000000 0x38 ./Core/Src/icm20948.o + .text.write_register + 0x00000000 0x38 ./Core/Src/icm20948.o + .text.icm20948_select_bank + 0x00000000 0x20 ./Core/Src/icm20948.o + .text.icm20948_init + 0x00000000 0x38 ./Core/Src/icm20948.o + .text.icm20948_read_accel + 0x00000000 0xb8 ./Core/Src/icm20948.o + .text.icm20948_read_gyro + 0x00000000 0xbc ./Core/Src/icm20948.o .text.icm20948_mag_init 0x00000000 0x1c ./Core/Src/icm20948.o + .text.icm20948_read_mag + 0x00000000 0xb8 ./Core/Src/icm20948.o + .debug_info 0x00000000 0x87c ./Core/Src/icm20948.o + .debug_abbrev 0x00000000 0x1f8 ./Core/Src/icm20948.o + .debug_aranges + 0x00000000 0x58 ./Core/Src/icm20948.o + .debug_rnglists + 0x00000000 0x40 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x1f0 ./Core/Src/icm20948.o .debug_macro 0x00000000 0xad8 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x1ad ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x2e ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x28 ./Core/Src/icm20948.o .debug_macro 0x00000000 0x22 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x8e ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x51 ./Core/Src/icm20948.o .debug_macro 0x00000000 0x103 ./Core/Src/icm20948.o .debug_macro 0x00000000 0x6a ./Core/Src/icm20948.o .debug_macro 0x00000000 0x1df ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x1c ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x22 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0xfb ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x1011 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x11f ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x16336 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x6d ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x38fb ./Core/Src/icm20948.o .debug_macro 0x00000000 0x190 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x5c ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x13fa ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x646 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x1b9 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x168 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x26b ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x23d ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x241 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x375 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0xd6 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x22c ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x61 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0xa5 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x122 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x364 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x2fe ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x5cf ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x44 ./Core/Src/icm20948.o + .debug_macro 0x00000000 0x2eb ./Core/Src/icm20948.o + .debug_line 0x00000000 0x8db ./Core/Src/icm20948.o + .debug_str 0x00000000 0xca876 ./Core/Src/icm20948.o + .comment 0x00000000 0x44 ./Core/Src/icm20948.o + .debug_frame 0x00000000 0x12c ./Core/Src/icm20948.o + .ARM.attributes + 0x00000000 0x34 ./Core/Src/icm20948.o + .group 0x00000000 0xc ./Core/Src/lcd_i2c.o .group 0x00000000 0xc ./Core/Src/lcd_i2c.o .group 0x00000000 0xc ./Core/Src/lcd_i2c.o .group 0x00000000 0xc ./Core/Src/lcd_i2c.o @@ -331,8 +604,29 @@ Discarded input sections .text 0x00000000 0x0 ./Core/Src/lcd_i2c.o .data 0x00000000 0x0 ./Core/Src/lcd_i2c.o .bss 0x00000000 0x0 ./Core/Src/lcd_i2c.o + .text.lcd_init + 0x00000000 0x38 ./Core/Src/lcd_i2c.o + .text.lcd_clear + 0x00000000 0x14 ./Core/Src/lcd_i2c.o + .text.lcd_set_cursor + 0x00000000 0x40 ./Core/Src/lcd_i2c.o + .text.lcd_print + 0x00000000 0x2a ./Core/Src/lcd_i2c.o + .text.lcd_send_cmd + 0x00000000 0x1c ./Core/Src/lcd_i2c.o + .text.lcd_send_data + 0x00000000 0x1c ./Core/Src/lcd_i2c.o + .text.lcd_send + 0x00000000 0x94 ./Core/Src/lcd_i2c.o + .debug_info 0x00000000 0x780 ./Core/Src/lcd_i2c.o + .debug_abbrev 0x00000000 0x1e1 ./Core/Src/lcd_i2c.o + .debug_aranges + 0x00000000 0x50 ./Core/Src/lcd_i2c.o + .debug_rnglists + 0x00000000 0x38 ./Core/Src/lcd_i2c.o + .debug_macro 0x00000000 0x2c4 ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0xad8 ./Core/Src/lcd_i2c.o - .debug_macro 0x00000000 0x1a7 ./Core/Src/lcd_i2c.o + .debug_macro 0x00000000 0x1ad ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x2e ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x28 ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x22 ./Core/Src/lcd_i2c.o @@ -365,9 +659,11 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x122 ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x364 ./Core/Src/lcd_i2c.o + .debug_macro 0x00000000 0x2fe ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x5cf ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x44 ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x2eb ./Core/Src/lcd_i2c.o + .debug_macro 0x00000000 0x61 ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x2a ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x43 ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x34 ./Core/Src/lcd_i2c.o @@ -380,26 +676,15 @@ Discarded input sections .debug_macro 0x00000000 0x8e ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x1c ./Core/Src/lcd_i2c.o .debug_macro 0x00000000 0x185 ./Core/Src/lcd_i2c.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o - .group 0x00000000 0xc ./Core/Src/main.o + .debug_macro 0x00000000 0x10 ./Core/Src/lcd_i2c.o + .debug_macro 0x00000000 0x3c ./Core/Src/lcd_i2c.o + .debug_macro 0x00000000 0x20 ./Core/Src/lcd_i2c.o + .debug_line 0x00000000 0x994 ./Core/Src/lcd_i2c.o + .debug_str 0x00000000 0xcda29 ./Core/Src/lcd_i2c.o + .comment 0x00000000 0x44 ./Core/Src/lcd_i2c.o + .debug_frame 0x00000000 0x100 ./Core/Src/lcd_i2c.o + .ARM.attributes + 0x00000000 0x34 ./Core/Src/lcd_i2c.o .group 0x00000000 0xc ./Core/Src/main.o .group 0x00000000 0xc ./Core/Src/main.o .group 0x00000000 0xc ./Core/Src/main.o @@ -445,25 +730,12 @@ Discarded input sections .data 0x00000000 0x0 ./Core/Src/main.o .bss 0x00000000 0x0 ./Core/Src/main.o .debug_macro 0x00000000 0xad8 ./Core/Src/main.o - .debug_macro 0x00000000 0x22 ./Core/Src/main.o - .debug_macro 0x00000000 0x5b ./Core/Src/main.o - .debug_macro 0x00000000 0x2a ./Core/Src/main.o - .debug_macro 0x00000000 0x94 ./Core/Src/main.o - .debug_macro 0x00000000 0x43 ./Core/Src/main.o - .debug_macro 0x00000000 0x34 ./Core/Src/main.o - .debug_macro 0x00000000 0x57 ./Core/Src/main.o - .debug_macro 0x00000000 0x370 ./Core/Src/main.o - .debug_macro 0x00000000 0x16 ./Core/Src/main.o - .debug_macro 0x00000000 0x4a ./Core/Src/main.o - .debug_macro 0x00000000 0x34 ./Core/Src/main.o - .debug_macro 0x00000000 0x10 ./Core/Src/main.o - .debug_macro 0x00000000 0x58 ./Core/Src/main.o - .debug_macro 0x00000000 0x8e ./Core/Src/main.o - .debug_macro 0x00000000 0x1c ./Core/Src/main.o - .debug_macro 0x00000000 0x185 ./Core/Src/main.o - .debug_macro 0x00000000 0x1a7 ./Core/Src/main.o + .debug_macro 0x00000000 0x1ad ./Core/Src/main.o .debug_macro 0x00000000 0x2e ./Core/Src/main.o .debug_macro 0x00000000 0x28 ./Core/Src/main.o + .debug_macro 0x00000000 0x22 ./Core/Src/main.o + .debug_macro 0x00000000 0x8e ./Core/Src/main.o + .debug_macro 0x00000000 0x51 ./Core/Src/main.o .debug_macro 0x00000000 0x103 ./Core/Src/main.o .debug_macro 0x00000000 0x6a ./Core/Src/main.o .debug_macro 0x00000000 0x1df ./Core/Src/main.o @@ -475,6 +747,8 @@ Discarded input sections .debug_macro 0x00000000 0x16336 ./Core/Src/main.o .debug_macro 0x00000000 0x6d ./Core/Src/main.o .debug_macro 0x00000000 0x38fb ./Core/Src/main.o + .debug_macro 0x00000000 0x190 ./Core/Src/main.o + .debug_macro 0x00000000 0x5c ./Core/Src/main.o .debug_macro 0x00000000 0x13fa ./Core/Src/main.o .debug_macro 0x00000000 0x646 ./Core/Src/main.o .debug_macro 0x00000000 0x1b9 ./Core/Src/main.o @@ -489,11 +763,13 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Core/Src/main.o .debug_macro 0x00000000 0x122 ./Core/Src/main.o .debug_macro 0x00000000 0x364 ./Core/Src/main.o + .debug_macro 0x00000000 0x2fe ./Core/Src/main.o .debug_macro 0x00000000 0x5cf ./Core/Src/main.o .debug_macro 0x00000000 0x44 ./Core/Src/main.o .debug_macro 0x00000000 0x2eb ./Core/Src/main.o + .debug_macro 0x00000000 0x94 ./Core/Src/main.o .debug_macro 0x00000000 0x22 ./Core/Src/main.o - .debug_macro 0x00000000 0x9a ./Core/Src/main.o + .debug_macro 0x00000000 0x124 ./Core/Src/main.o .group 0x00000000 0xc ./Core/Src/moto_config.o .group 0x00000000 0xc ./Core/Src/moto_config.o .group 0x00000000 0xc ./Core/Src/moto_config.o @@ -529,6 +805,30 @@ Discarded input sections .text 0x00000000 0x0 ./Core/Src/moto_config.o .data 0x00000000 0x0 ./Core/Src/moto_config.o .bss 0x00000000 0x0 ./Core/Src/moto_config.o + .text.Moto_InitData + 0x00000000 0x2c ./Core/Src/moto_config.o + .text.Moto_UpdateState + 0x00000000 0x120 ./Core/Src/moto_config.o + .text.Moto_FilterAngles + 0x00000000 0x90 ./Core/Src/moto_config.o + .rodata 0x00000000 0x17f ./Core/Src/moto_config.o + .text.Moto_GetStateString + 0x00000000 0x80 ./Core/Src/moto_config.o + .text.Moto_UpdateStats + 0x00000000 0x142 ./Core/Src/moto_config.o + .text.Moto_CalibrateMagnetometer + 0x00000000 0x30 ./Core/Src/moto_config.o + .text.Moto_DetectCrash + 0x00000000 0x58 ./Core/Src/moto_config.o + .text.Moto_FormatDisplay + 0x00000000 0x18c ./Core/Src/moto_config.o + .debug_info 0x00000000 0x497 ./Core/Src/moto_config.o + .debug_abbrev 0x00000000 0x183 ./Core/Src/moto_config.o + .debug_aranges + 0x00000000 0x58 ./Core/Src/moto_config.o + .debug_rnglists + 0x00000000 0x42 ./Core/Src/moto_config.o + .debug_macro 0x00000000 0x18f ./Core/Src/moto_config.o .debug_macro 0x00000000 0xad8 ./Core/Src/moto_config.o .debug_macro 0x00000000 0x22 ./Core/Src/moto_config.o .debug_macro 0x00000000 0x22 ./Core/Src/moto_config.o @@ -537,6 +837,7 @@ Discarded input sections .debug_macro 0x00000000 0x103 ./Core/Src/moto_config.o .debug_macro 0x00000000 0x6a ./Core/Src/moto_config.o .debug_macro 0x00000000 0x1df ./Core/Src/moto_config.o + .debug_macro 0x00000000 0x64 ./Core/Src/moto_config.o .debug_macro 0x00000000 0x61 ./Core/Src/moto_config.o .debug_macro 0x00000000 0x2a ./Core/Src/moto_config.o .debug_macro 0x00000000 0x43 ./Core/Src/moto_config.o @@ -552,11 +853,21 @@ Discarded input sections .debug_macro 0x00000000 0x1c ./Core/Src/moto_config.o .debug_macro 0x00000000 0x185 ./Core/Src/moto_config.o .debug_macro 0x00000000 0x19b ./Core/Src/moto_config.o + .debug_macro 0x00000000 0x16 ./Core/Src/moto_config.o .debug_macro 0x00000000 0x3c ./Core/Src/moto_config.o .debug_macro 0x00000000 0x20 ./Core/Src/moto_config.o + .debug_macro 0x00000000 0x1c ./Core/Src/moto_config.o .debug_macro 0x00000000 0x10 ./Core/Src/moto_config.o + .debug_macro 0x00000000 0x1c ./Core/Src/moto_config.o .debug_macro 0x00000000 0x16 ./Core/Src/moto_config.o .debug_macro 0x00000000 0x146 ./Core/Src/moto_config.o + .debug_line 0x00000000 0x869 ./Core/Src/moto_config.o + .debug_str 0x00000000 0x860d ./Core/Src/moto_config.o + .comment 0x00000000 0x44 ./Core/Src/moto_config.o + .debug_frame 0x00000000 0x14c ./Core/Src/moto_config.o + .ARM.attributes + 0x00000000 0x34 ./Core/Src/moto_config.o + .group 0x00000000 0xc ./Core/Src/stm32l4xx_hal_msp.o .group 0x00000000 0xc ./Core/Src/stm32l4xx_hal_msp.o .group 0x00000000 0xc ./Core/Src/stm32l4xx_hal_msp.o .group 0x00000000 0xc ./Core/Src/stm32l4xx_hal_msp.o @@ -598,12 +909,18 @@ Discarded input sections .text 0x00000000 0x0 ./Core/Src/stm32l4xx_hal_msp.o .data 0x00000000 0x0 ./Core/Src/stm32l4xx_hal_msp.o .bss 0x00000000 0x0 ./Core/Src/stm32l4xx_hal_msp.o + .text.HAL_I2C_MspInit + 0x00000000 0xbc ./Core/Src/stm32l4xx_hal_msp.o .text.HAL_I2C_MspDeInit 0x00000000 0x48 ./Core/Src/stm32l4xx_hal_msp.o + .text.HAL_SPI_MspDeInit + 0x00000000 0x3c ./Core/Src/stm32l4xx_hal_msp.o + .text.HAL_UART_MspInit + 0x00000000 0xb8 ./Core/Src/stm32l4xx_hal_msp.o .text.HAL_UART_MspDeInit 0x00000000 0x38 ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0xad8 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x00000000 0x1a7 ./Core/Src/stm32l4xx_hal_msp.o + .debug_macro 0x00000000 0x1ad ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0x2e ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0x28 ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0x22 ./Core/Src/stm32l4xx_hal_msp.o @@ -636,6 +953,7 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0x122 ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0x364 ./Core/Src/stm32l4xx_hal_msp.o + .debug_macro 0x00000000 0x2fe ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0x5cf ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0x44 ./Core/Src/stm32l4xx_hal_msp.o .debug_macro 0x00000000 0x2eb ./Core/Src/stm32l4xx_hal_msp.o @@ -678,11 +996,12 @@ Discarded input sections .group 0x00000000 0xc ./Core/Src/stm32l4xx_it.o .group 0x00000000 0xc ./Core/Src/stm32l4xx_it.o .group 0x00000000 0xc ./Core/Src/stm32l4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l4xx_it.o .text 0x00000000 0x0 ./Core/Src/stm32l4xx_it.o .data 0x00000000 0x0 ./Core/Src/stm32l4xx_it.o .bss 0x00000000 0x0 ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0xad8 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x00000000 0x1a7 ./Core/Src/stm32l4xx_it.o + .debug_macro 0x00000000 0x1ad ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0x2e ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0x28 ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0x22 ./Core/Src/stm32l4xx_it.o @@ -715,6 +1034,7 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0x122 ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0x364 ./Core/Src/stm32l4xx_it.o + .debug_macro 0x00000000 0x2fe ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0x5cf ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0x44 ./Core/Src/stm32l4xx_it.o .debug_macro 0x00000000 0x2eb ./Core/Src/stm32l4xx_it.o @@ -803,6 +1123,9 @@ Discarded input sections .debug_macro 0x00000000 0x185 ./Core/Src/syscalls.o .debug_macro 0x00000000 0x3c ./Core/Src/syscalls.o .debug_macro 0x00000000 0x6a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x29 ./Core/Src/syscalls.o .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o @@ -894,9 +1217,12 @@ Discarded input sections .group 0x00000000 0xc ./Core/Src/system_stm32l4xx.o .group 0x00000000 0xc ./Core/Src/system_stm32l4xx.o .group 0x00000000 0xc ./Core/Src/system_stm32l4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l4xx.o .text 0x00000000 0x0 ./Core/Src/system_stm32l4xx.o .data 0x00000000 0x0 ./Core/Src/system_stm32l4xx.o .bss 0x00000000 0x0 ./Core/Src/system_stm32l4xx.o + .rodata.APBPrescTable + 0x00000000 0x8 ./Core/Src/system_stm32l4xx.o .text.SystemCoreClockUpdate 0x00000000 0x15c ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0xad8 ./Core/Src/system_stm32l4xx.o @@ -915,7 +1241,7 @@ Discarded input sections .debug_macro 0x00000000 0x11f ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x16336 ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x6d ./Core/Src/system_stm32l4xx.o - .debug_macro 0x00000000 0x1a7 ./Core/Src/system_stm32l4xx.o + .debug_macro 0x00000000 0x1ad ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x38fb ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x190 ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x5c ./Core/Src/system_stm32l4xx.o @@ -933,6 +1259,7 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x122 ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x364 ./Core/Src/system_stm32l4xx.o + .debug_macro 0x00000000 0x2fe ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x5cf ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x44 ./Core/Src/system_stm32l4xx.o .debug_macro 0x00000000 0x2eb ./Core/Src/system_stm32l4xx.o @@ -976,6 +1303,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o @@ -1040,7 +1368,7 @@ Discarded input sections .text.HAL_SYSCFG_DisableIOAnalogSwitchBooster 0x00000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o @@ -1073,6 +1401,7 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o @@ -1113,6 +1442,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o @@ -1169,7 +1499,7 @@ Discarded input sections .text.HAL_MPU_ConfigRegion 0x00000000 0x80 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o @@ -1202,6 +1532,7 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o @@ -1242,6 +1573,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o @@ -1277,9 +1609,9 @@ Discarded input sections 0x00000000 0x80 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_rnglists 0x00000000 0x64 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x00000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o + .debug_macro 0x00000000 0x1da ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o @@ -1312,11 +1644,12 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_line 0x00000000 0xd27 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_str 0x00000000 0xc8b3c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o + .debug_line 0x00000000 0xd58 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o + .debug_str 0x00000000 0xca72e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .debug_frame 0x00000000 0x204 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o .ARM.attributes @@ -1358,6 +1691,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o @@ -1365,9 +1699,9 @@ Discarded input sections .debug_abbrev 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_aranges 0x00000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x00000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1da ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o @@ -1400,11 +1734,12 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_line 0x00000000 0x740 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_str 0x00000000 0xc86ac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o + .debug_line 0x00000000 0x771 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o + .debug_str 0x00000000 0xca29e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o .ARM.attributes 0x00000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o @@ -1445,6 +1780,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o @@ -1472,9 +1808,9 @@ Discarded input sections 0x00000000 0x60 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_rnglists 0x00000000 0x46 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x00000000 0x1d1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o + .debug_macro 0x00000000 0x1e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o @@ -1507,11 +1843,12 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_line 0x00000000 0xabd ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_str 0x00000000 0xc898b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o + .debug_line 0x00000000 0xaee ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o + .debug_str 0x00000000 0xca57d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .debug_frame 0x00000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o .ARM.attributes @@ -1553,6 +1890,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o @@ -1591,9 +1929,9 @@ Discarded input sections 0x00000000 0x88 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_rnglists 0x00000000 0x65 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x00000000 0x1cb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o + .debug_macro 0x00000000 0x1e0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o @@ -1626,11 +1964,12 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_line 0x00000000 0xacd ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_str 0x00000000 0xc8b54 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o + .debug_line 0x00000000 0xafe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o + .debug_str 0x00000000 0xca746 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .debug_frame 0x00000000 0x204 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o .ARM.attributes @@ -1672,6 +2011,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o @@ -1711,9 +2051,9 @@ Discarded input sections 0x00000000 0x90 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_rnglists 0x00000000 0x6f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x00000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1da ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o @@ -1746,11 +2086,12 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_line 0x00000000 0xc33 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_str 0x00000000 0xc8b74 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o + .debug_line 0x00000000 0xc64 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o + .debug_str 0x00000000 0xca766 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .debug_frame 0x00000000 0x248 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o .ARM.attributes @@ -1792,6 +2133,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o @@ -1802,9 +2144,9 @@ Discarded input sections 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_rnglists 0x00000000 0x19 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x00000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1da ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o @@ -1837,11 +2179,12 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_line 0x00000000 0x76c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_str 0x00000000 0xc8794 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o + .debug_line 0x00000000 0x79d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o + .debug_str 0x00000000 0xca386 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .debug_frame 0x00000000 0x50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o .ARM.attributes @@ -1883,6 +2226,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o @@ -1899,7 +2243,7 @@ Discarded input sections .text.HAL_GPIO_EXTI_Callback 0x00000000 0x16 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o @@ -1932,6 +2276,7 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o @@ -1972,15 +2317,20 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.HAL_I2C_Init + 0x00000000 0x136 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.HAL_I2C_DeInit 0x00000000 0x5e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.HAL_I2C_MspInit 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.HAL_I2C_MspDeInit 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.HAL_I2C_Master_Transmit + 0x00000000 0x230 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.HAL_I2C_Master_Receive 0x00000000 0x1ec ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.HAL_I2C_Slave_Transmit @@ -2003,6 +2353,10 @@ Discarded input sections 0x00000000 0x1d8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.HAL_I2C_Slave_Receive_DMA 0x00000000 0x16c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.HAL_I2C_Mem_Write + 0x00000000 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.HAL_I2C_Mem_Read + 0x00000000 0x234 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.HAL_I2C_Mem_Write_IT 0x00000000 0x114 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.HAL_I2C_Mem_Read_IT @@ -2077,6 +2431,10 @@ Discarded input sections 0x00000000 0x29c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_Slave_ISR_DMA 0x00000000 0x1c2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.I2C_RequestMemoryWrite + 0x00000000 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.I2C_RequestMemoryRead + 0x00000000 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_ITAddrCplt 0x00000000 0x108 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_ITMasterSeqCplt @@ -2093,6 +2451,8 @@ Discarded input sections 0x00000000 0x1e0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_TreatErrorCallback 0x00000000 0x4e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.I2C_Flush_TXDR + 0x00000000 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_DMAMasterTransmitCplt 0x00000000 0x96 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_DMASlaveTransmitCplt @@ -2105,16 +2465,33 @@ Discarded input sections 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_DMAAbort 0x00000000 0x3c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.I2C_WaitOnFlagUntilTimeout + 0x00000000 0xb2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.I2C_WaitOnTXISFlagUntilTimeout + 0x00000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.I2C_WaitOnSTOPFlagUntilTimeout + 0x00000000 0x86 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_WaitOnRXNEFlagUntilTimeout 0x00000000 0x118 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.I2C_IsErrorOccurred + 0x00000000 0x1c0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .text.I2C_TransferConfig + 0x00000000 0x64 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_Enable_IRQ 0x00000000 0x108 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_Disable_IRQ 0x00000000 0xbc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .text.I2C_ConvertOtherXferOptions 0x00000000 0x36 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_info 0x00000000 0x20d2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_abbrev 0x00000000 0x261 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_aranges + 0x00000000 0x2a0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_rnglists + 0x00000000 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_macro 0x00000000 0x2a6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o @@ -2147,9 +2524,17 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_line 0x00000000 0x377f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_str 0x00000000 0xcb6c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .debug_frame 0x00000000 0xc38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o @@ -2190,6 +2575,10 @@ Discarded input sections .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .text.HAL_I2CEx_ConfigAnalogFilter + 0x00000000 0x96 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .text.HAL_I2CEx_ConfigDigitalFilter + 0x00000000 0x98 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .text.HAL_I2CEx_EnableWakeUp 0x00000000 0x84 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .text.HAL_I2CEx_DisableWakeUp @@ -2198,8 +2587,15 @@ Discarded input sections 0x00000000 0x40 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .text.HAL_I2CEx_DisableFastModePlus 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_info 0x00000000 0x98d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_abbrev 0x00000000 0x1c3 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_aranges + 0x00000000 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_rnglists + 0x00000000 0x35 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_macro 0x00000000 0x1da ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o @@ -2232,9 +2628,17 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_line 0x00000000 0x8de ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_str 0x00000000 0xca9db ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .debug_frame 0x00000000 0x100 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o @@ -2313,9 +2717,9 @@ Discarded input sections 0x00000000 0x98 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_rnglists 0x00000000 0x6e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x00000000 0x1dd ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o + .debug_macro 0x00000000 0x1f2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o @@ -2348,11 +2752,12 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_line 0x00000000 0x918 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_str 0x00000000 0xc8c26 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o + .debug_line 0x00000000 0x949 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o + .debug_str 0x00000000 0xca818 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .debug_frame 0x00000000 0x230 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o .ARM.attributes @@ -2394,9 +2799,12 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .text.HAL_PWREx_ControlVoltageScaling + 0x00000000 0xac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .text.HAL_PWREx_EnableBatteryCharging 0x00000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .text.HAL_PWREx_DisableBatteryCharging @@ -2462,7 +2870,7 @@ Discarded input sections .text.HAL_PWREx_PVM4Callback 0x00000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o @@ -2495,6 +2903,7 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o @@ -2535,6 +2944,7 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o @@ -2542,6 +2952,12 @@ Discarded input sections 0x00000000 0x130 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .text.HAL_RCC_MCOConfig 0x00000000 0x68 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .text.HAL_RCC_GetHCLKFreq + 0x00000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .text.HAL_RCC_GetPCLK1Freq + 0x00000000 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .text.HAL_RCC_GetPCLK2Freq + 0x00000000 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .text.HAL_RCC_GetOscConfig 0x00000000 0x194 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .text.HAL_RCC_GetClockConfig @@ -2555,7 +2971,7 @@ Discarded input sections .text.HAL_RCC_GetResetSource 0x00000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o @@ -2588,6 +3004,7 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o @@ -2628,9 +3045,12 @@ Discarded input sections .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .text.HAL_RCCEx_PeriphCLKConfig + 0x00000000 0x4d8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .text.HAL_RCCEx_GetPeriphCLKConfig 0x00000000 0x180 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .text.HAL_RCCEx_GetPeriphCLKFreq @@ -2679,10 +3099,19 @@ Discarded input sections 0x00000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .text.HAL_RCCEx_CRS_ErrorCallback 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .text.RCCEx_PLLSAI1_Config + 0x00000000 0x1e4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .text.RCCEx_GetSAIxPeriphCLKFreq 0x00000000 0x178 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_info 0x00000000 0xf34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_abbrev 0x00000000 0x2a1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_aranges + 0x00000000 0xf0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_rnglists + 0x00000000 0xba ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x210 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o @@ -2715,9 +3144,292 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_line 0x00000000 0x14c9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_str 0x00000000 0xcad92 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .debug_frame 0x00000000 0x3d0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_DeInit + 0x00000000 0x50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_MspInit + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_MspDeInit + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_Receive + 0x00000000 0x270 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_TransmitReceive + 0x00000000 0x43e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_Transmit_IT + 0x00000000 0x110 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_Receive_IT + 0x00000000 0x154 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_TransmitReceive_IT + 0x00000000 0x154 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_Transmit_DMA + 0x00000000 0x1dc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_Receive_DMA + 0x00000000 0x240 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_TransmitReceive_DMA + 0x00000000 0x30c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_Abort + 0x00000000 0x240 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_Abort_IT + 0x00000000 0x1f4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_DMAPause + 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_DMAResume + 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_DMAStop + 0x00000000 0x7e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_IRQHandler + 0x00000000 0x200 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_TxCpltCallback + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_RxCpltCallback + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_TxRxCpltCallback + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_TxHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_RxHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_TxRxHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_ErrorCallback + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_AbortCpltCallback + 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_GetState + 0x00000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.HAL_SPI_GetError + 0x00000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMATransmitCplt + 0x00000000 0xa6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMAReceiveCplt + 0x00000000 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMATransmitReceiveCplt + 0x00000000 0x90 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMAHalfTransmitCplt + 0x00000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMAHalfReceiveCplt + 0x00000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMAHalfTransmitReceiveCplt + 0x00000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMAError + 0x00000000 0x40 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMAAbortOnError + 0x00000000 0x2a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMATxAbortCallback + 0x00000000 0xde ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_DMARxAbortCallback + 0x00000000 0xe2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_2linesRxISR_8BIT + 0x00000000 0xbe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_2linesTxISR_8BIT + 0x00000000 0x92 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_2linesRxISR_16BIT + 0x00000000 0x66 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_2linesTxISR_16BIT + 0x00000000 0x60 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_RxISR_8BIT + 0x00000000 0x50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_RxISR_16BIT + 0x00000000 0x4c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_TxISR_8BIT + 0x00000000 0x46 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_TxISR_16BIT + 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_EndRxTransaction + 0x00000000 0xb0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_CloseRxTx_ISR + 0x00000000 0x84 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_CloseRx_ISR + 0x00000000 0x60 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_CloseTx_ISR + 0x00000000 0x7e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_AbortRx_ISR + 0x00000000 0xc0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_AbortTx_ISR + 0x00000000 0x144 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x16336 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x38fb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x13fa ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x646 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x168 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x375 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .text.HAL_SPIEx_FlushRxFifo + 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_info 0x00000000 0x5ec ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_abbrev 0x00000000 0x156 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_aranges + 0x00000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_rnglists + 0x00000000 0x13 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x1e0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x16336 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x38fb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x13fa ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x646 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x168 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x375 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_line 0x00000000 0x7b4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_str 0x00000000 0xca712 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .debug_frame 0x00000000 0x38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o @@ -2758,6 +3470,8 @@ Discarded input sections .text 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .data 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .bss 0x00000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .text.HAL_UART_Init + 0x00000000 0x9c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.HAL_HalfDuplex_Init 0x00000000 0xac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.HAL_LIN_Init @@ -2770,6 +3484,8 @@ Discarded input sections 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.HAL_UART_MspDeInit 0x00000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .text.HAL_UART_Transmit + 0x00000000 0x112 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.HAL_UART_Receive 0x00000000 0x192 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.HAL_UART_Transmit_IT @@ -2840,12 +3556,22 @@ Discarded input sections 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.HAL_UART_GetError 0x00000000 0x1a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .text.UART_SetConfig + 0x00000000 0x50c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .text.UART_AdvFeatureConfig + 0x00000000 0x144 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .text.UART_CheckIdleState + 0x00000000 0x150 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .text.UART_WaitOnFlagUntilTimeout + 0x00000000 0xda ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.UART_Start_Receive_IT 0x00000000 0x18c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.UART_Start_Receive_DMA 0x00000000 0x140 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.UART_EndTxTransfer 0x00000000 0x4c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .text.UART_EndRxTransfer + 0x00000000 0xc8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.UART_DMATransmitCplt 0x00000000 0x9a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.UART_DMATxHalfCplt @@ -2876,8 +3602,15 @@ Discarded input sections 0x00000000 0x1bc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .text.UART_RxISR_16BIT 0x00000000 0x1bc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_info 0x00000000 0x3b85 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_abbrev 0x00000000 0x2d0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_aranges + 0x00000000 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_rnglists + 0x00000000 0x1db ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_macro 0x00000000 0x205 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o @@ -2910,9 +3643,17 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_line 0x00000000 0x2d78 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_str 0x00000000 0xcb226 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .debug_frame 0x00000000 0x9f4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .group 0x00000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o @@ -2985,9 +3726,9 @@ Discarded input sections 0x00000000 0x80 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_rnglists 0x00000000 0x60 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x00000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x1da ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0xad8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x00000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x1ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o @@ -3020,11 +3761,12 @@ Discarded input sections .debug_macro 0x00000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0x364 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x2fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_macro 0x00000000 0x2eb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_line 0x00000000 0xbe4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_str 0x00000000 0xc8e56 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o + .debug_line 0x00000000 0xc15 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o + .debug_str 0x00000000 0xcaa48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .comment 0x00000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .debug_frame 0x00000000 0x204 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o .ARM.attributes @@ -3057,16 +3799,16 @@ Discarded input sections .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) - .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) - .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) - .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) - .text._printf_r - 0x00000000 0x1c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) .text._snprintf_r 0x00000000 0x64 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) + .text.snprintf + 0x00000000 0x6c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) + .debug_frame 0x00000000 0x7c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) @@ -3179,37 +3921,28 @@ Discarded input sections .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) + .text.__ssputs_r + 0x00000000 0xb6 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) .text.__ssprint_r 0x00000000 0xfa C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) - .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - .text.__sprint_r - 0x00000000 0x1a C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - .text.vfprintf - 0x00000000 0x14 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + .rodata._svfprintf_r.str1.1 + 0x00000000 0x11 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) + .text._svfprintf_r + 0x00000000 0x1f8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) + .debug_frame 0x00000000 0x90 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) .text.fflush 0x00000000 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) - .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) - .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) - .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) - .text.__sfvwrite_r - 0x00000000 0x298 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) - .debug_frame 0x00000000 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) - .ARM.attributes - 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) - .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) - .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) - .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) - .text.__swbuf 0x00000000 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) - .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) - .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) - .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) + .text.memmove 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) + .debug_frame 0x00000000 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) @@ -3251,6 +3984,11 @@ Discarded input sections .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) + .text._realloc_r + 0x00000000 0x5c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) + .debug_frame 0x00000000 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) @@ -3264,21 +4002,39 @@ Discarded input sections .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) .text._fprintf_r 0x00000000 0x1a C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) - .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) - .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) - .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) - .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) - .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) - .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) - .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) - .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) - .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) + .text._malloc_usable_size_r + 0x00000000 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + .text.__sprint_r + 0x00000000 0x1a C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + .text.vfprintf + 0x00000000 0x14 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) + .text.__sfvwrite_r + 0x00000000 0x298 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) + .debug_frame 0x00000000 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fvwrite.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) + .text.__swbuf 0x00000000 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) @@ -3296,18 +4052,45 @@ Discarded input sections .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) + .rodata.asinf.str1.1 + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) + .text.asinf 0x00000000 0x58 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) + .debug_frame 0x00000000 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) + .text.atan2f 0x00000000 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) + .text.powf 0x00000000 0xae C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) + .debug_frame 0x00000000 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) + .text.sqrtf 0x00000000 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) + .debug_frame 0x00000000 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_cos.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_cos.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_cos.o) @@ -3318,55 +4101,151 @@ Discarded input sections .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) + .text.fabsf 0x00000000 0xe C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) + .text.sinf 0x00000000 0x8c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) + .debug_frame 0x00000000 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) + .text.finitef 0x00000000 0x14 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) + .text.nanf 0x00000000 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) + .text.__ieee754_sqrtf + 0x00000000 0x6 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) + .text.__kernel_cosf + 0x00000000 0xb0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) + .text.__kernel_sinf + 0x00000000 0x90 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) + .text.__ieee754_asinf + 0x00000000 0x1c8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) + .debug_frame 0x00000000 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) + .text.__ieee754_atan2f + 0x00000000 0x140 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) + .rodata.CSWTCH.9 + 0x00000000 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) + .rodata.CSWTCH.8 + 0x00000000 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) + .debug_frame 0x00000000 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) + .text.__ieee754_powf + 0x00000000 0x59c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) + .rodata.dp_l 0x00000000 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) + .rodata.dp_h 0x00000000 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) + .rodata.bp 0x00000000 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) + .debug_frame 0x00000000 0x88 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) + .text.__ieee754_rem_pio2f + 0x00000000 0x260 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) + .rodata.npio2_hw + 0x00000000 0x80 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) + .rodata.two_over_pi + 0x00000000 0x318 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) + .debug_frame 0x00000000 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) + .text.atanf 0x00000000 0x1a8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) + .rodata.atanlo + 0x00000000 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) + .rodata.atanhi + 0x00000000 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) + .debug_frame 0x00000000 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) + .text.scalbnf 0x00000000 0xcc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) + .text.with_errnof + 0x00000000 0x1c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) + .text.xflowf 0x00000000 0x16 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) + .text.__math_uflowf + 0x00000000 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) + .text.__math_oflowf + 0x00000000 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) .text.__math_divzerof 0x00000000 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) .text.__math_invalidf 0x00000000 0x1e C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) + .debug_frame 0x00000000 0x88 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) + .text.__kernel_rem_pio2f + 0x00000000 0x4d0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) + .rodata.PIo2 0x00000000 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) + .rodata.init_jk + 0x00000000 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) + .debug_frame 0x00000000 0x5c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) + .text.floorf 0x00000000 0x88 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) .text 0x00000000 0x254 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_muldf3.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_muldf3.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_muldf3.o) @@ -3383,13 +4262,25 @@ Discarded input sections .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_unorddf2.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_fixdfsi.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_fixdfsi.o) + .text 0x00000000 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x00000000 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + .ARM.attributes + 0x00000000 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + .text 0x00000000 0x2f8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) .ARM.extab 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + .ARM.exidx 0x00000000 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + .debug_frame 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + .text 0x00000000 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) + .ARM.attributes + 0x00000000 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o @@ -3415,6 +4306,7 @@ LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o LOAD ./Core/Src/FusionAhrs.o +LOAD ./Core/Src/gc9a01.o LOAD ./Core/Src/icm20948.o LOAD ./Core/Src/lcd_i2c.o LOAD ./Core/Src/main.o @@ -3440,6 +4332,8 @@ LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o +LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o +LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o START GROUP @@ -3473,7 +4367,7 @@ LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext 0x08000000 g_pfnVectors 0x08000194 . = ALIGN (0x4) -.text 0x080001a0 0xb58c +.text 0x080001a0 0x54a8 0x080001a0 . = ALIGN (0x4) *(.text) .text 0x080001a0 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o @@ -3524,853 +4418,558 @@ LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext .text 0x08000b68 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_fixdfsi.o) 0x08000b68 __aeabi_d2iz 0x08000b68 __fixdfsi - .text 0x08000bb8 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) - 0x08000bb8 __aeabi_uldivmod - .text 0x08000be8 0x2f8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) - 0x08000be8 __udivmoddi4 - .text 0x08000ee0 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) - 0x08000ee0 __aeabi_idiv0 - 0x08000ee0 __aeabi_ldiv0 *(.text*) - .text.FusionDegreesToRadians - 0x08000ee4 0x28 ./Core/Src/FusionAhrs.o - .text.FusionRadiansToDegrees - 0x08000f0c 0x28 ./Core/Src/FusionAhrs.o - .text.FusionAsin - 0x08000f34 0x58 ./Core/Src/FusionAhrs.o - .text.FusionFastInverseSqrt - 0x08000f8c 0x60 ./Core/Src/FusionAhrs.o - .text.FusionVectorIsZero - 0x08000fec 0x60 ./Core/Src/FusionAhrs.o - .text.FusionVectorAdd - 0x0800104c 0x9c ./Core/Src/FusionAhrs.o - .text.FusionVectorSum - 0x080010e8 0x40 ./Core/Src/FusionAhrs.o - .text.FusionVectorMultiplyScalar - 0x08001128 0x88 ./Core/Src/FusionAhrs.o - .text.FusionVectorHadamardProduct - 0x080011b0 0x9c ./Core/Src/FusionAhrs.o - .text.FusionVectorCrossProduct - 0x0800124c 0xcc ./Core/Src/FusionAhrs.o - .text.FusionVectorDotProduct - 0x08001318 0xac ./Core/Src/FusionAhrs.o - .text.FusionVectorMagnitudeSquared - 0x080013c4 0x94 ./Core/Src/FusionAhrs.o - .text.FusionVectorMagnitude - 0x08001458 0x54 ./Core/Src/FusionAhrs.o - .text.FusionVectorNormalise - 0x080014ac 0xa6 ./Core/Src/FusionAhrs.o - .text.FusionQuaternionAdd - 0x08001552 0xc4 ./Core/Src/FusionAhrs.o - .text.FusionQuaternionMultiplyVector - 0x08001616 0x140 ./Core/Src/FusionAhrs.o - .text.FusionQuaternionNormalise - 0x08001756 0xea ./Core/Src/FusionAhrs.o - .text.FusionAhrsInitialise - 0x08001840 0x3c ./Core/Src/FusionAhrs.o - 0x08001840 FusionAhrsInitialise - .text.FusionAhrsReset - 0x0800187c 0xc8 ./Core/Src/FusionAhrs.o - 0x0800187c FusionAhrsReset - .text.FusionAhrsSetSettings - 0x08001944 0x170 ./Core/Src/FusionAhrs.o - 0x08001944 FusionAhrsSetSettings - .text.FusionAhrsUpdate - 0x08001ab4 0x71e ./Core/Src/FusionAhrs.o - 0x08001ab4 FusionAhrsUpdate - .text.HalfGravity - 0x080021d2 0x17a ./Core/Src/FusionAhrs.o - .text.HalfMagnetic - 0x0800234c 0x214 ./Core/Src/FusionAhrs.o - .text.Feedback - 0x08002560 0x16a ./Core/Src/FusionAhrs.o - .text.Clamp 0x080026ca 0x32 ./Core/Src/FusionAhrs.o - .text.FusionAhrsGetQuaternion - 0x080026fc 0x46 ./Core/Src/FusionAhrs.o - 0x080026fc FusionAhrsGetQuaternion - *fill* 0x08002742 0x2 - .text.FusionAhrsGetInternalStates - 0x08002744 0x11c ./Core/Src/FusionAhrs.o - 0x08002744 FusionAhrsGetInternalStates - .text.FusionAhrsGetFlags - 0x08002860 0x6a ./Core/Src/FusionAhrs.o - 0x08002860 FusionAhrsGetFlags - *fill* 0x080028ca 0x2 - .text.write_register - 0x080028cc 0x38 ./Core/Src/icm20948.o - 0x080028cc write_register - .text.icm20948_select_bank - 0x08002904 0x20 ./Core/Src/icm20948.o - 0x08002904 icm20948_select_bank - .text.icm20948_init - 0x08002924 0x38 ./Core/Src/icm20948.o - 0x08002924 icm20948_init - .text.icm20948_read_accel - 0x0800295c 0xb8 ./Core/Src/icm20948.o - 0x0800295c icm20948_read_accel - .text.icm20948_read_gyro - 0x08002a14 0xbc ./Core/Src/icm20948.o - 0x08002a14 icm20948_read_gyro - .text.icm20948_read_mag - 0x08002ad0 0xb8 ./Core/Src/icm20948.o - 0x08002ad0 icm20948_read_mag - .text.lcd_init - 0x08002b88 0x38 ./Core/Src/lcd_i2c.o - 0x08002b88 lcd_init - .text.lcd_clear - 0x08002bc0 0x14 ./Core/Src/lcd_i2c.o - 0x08002bc0 lcd_clear - .text.lcd_set_cursor - 0x08002bd4 0x40 ./Core/Src/lcd_i2c.o - 0x08002bd4 lcd_set_cursor - .text.lcd_print - 0x08002c14 0x2a ./Core/Src/lcd_i2c.o - 0x08002c14 lcd_print - .text.lcd_send_cmd - 0x08002c3e 0x1c ./Core/Src/lcd_i2c.o - 0x08002c3e lcd_send_cmd - .text.lcd_send_data - 0x08002c5a 0x1c ./Core/Src/lcd_i2c.o - 0x08002c5a lcd_send_data - *fill* 0x08002c76 0x2 - .text.lcd_send - 0x08002c78 0x94 ./Core/Src/lcd_i2c.o - 0x08002c78 lcd_send - .text.FusionRadiansToDegrees - 0x08002d0c 0x28 ./Core/Src/main.o - .text.FusionAsin - 0x08002d34 0x58 ./Core/Src/main.o - .text.FusionQuaternionToEuler - 0x08002d8c 0x14c ./Core/Src/main.o - .text.__io_putchar - 0x08002ed8 0x24 ./Core/Src/main.o - 0x08002ed8 __io_putchar - .text.main 0x08002efc 0x4c8 ./Core/Src/main.o - 0x08002efc main - .text.SystemClock_Config - 0x080033c4 0xa2 ./Core/Src/main.o - 0x080033c4 SystemClock_Config - *fill* 0x08003466 0x2 - .text.MX_I2C1_Init - 0x08003468 0x80 ./Core/Src/main.o - .text.MX_USART2_UART_Init - 0x080034e8 0x60 ./Core/Src/main.o + .text.GC9A01_Select + 0x08000bb8 0x18 ./Core/Src/gc9a01.o + .text.GC9A01_Unselect + 0x08000bd0 0x18 ./Core/Src/gc9a01.o + .text.GC9A01_DC_Command + 0x08000be8 0x18 ./Core/Src/gc9a01.o + .text.GC9A01_DC_Data + 0x08000c00 0x18 ./Core/Src/gc9a01.o + .text.GC9A01_WriteCommand + 0x08000c18 0x34 ./Core/Src/gc9a01.o + .text.GC9A01_WriteData + 0x08000c4c 0x34 ./Core/Src/gc9a01.o + .text.GC9A01_WriteDataBuffer + 0x08000c80 0x3c ./Core/Src/gc9a01.o + .text.GC9A01_SetAddressWindow + 0x08000cbc 0x90 ./Core/Src/gc9a01.o + .text.GC9A01_Init + 0x08000d4c 0x80 ./Core/Src/gc9a01.o + 0x08000d4c GC9A01_Init + .text.GC9A01_Reset + 0x08000dcc 0x2c ./Core/Src/gc9a01.o + 0x08000dcc GC9A01_Reset + .text.GC9A01_DisplayOn + 0x08000df8 0xe ./Core/Src/gc9a01.o + 0x08000df8 GC9A01_DisplayOn + *fill* 0x08000e06 0x2 + .text.GC9A01_FillRect + 0x08000e08 0x104 ./Core/Src/gc9a01.o + 0x08000e08 GC9A01_FillRect + .text.GC9A01_FillScreen + 0x08000f0c 0x22 ./Core/Src/gc9a01.o + 0x08000f0c GC9A01_FillScreen + *fill* 0x08000f2e 0x2 + .text.main 0x08000f30 0x30 ./Core/Src/main.o + 0x08000f30 main + .text.MX_SPI1_Init + 0x08000f60 0x70 ./Core/Src/main.o .text.MX_GPIO_Init - 0x08003548 0x114 ./Core/Src/main.o + 0x08000fd0 0x60 ./Core/Src/main.o + .text.SystemClock_Config + 0x08001030 0x78 ./Core/Src/main.o + 0x08001030 SystemClock_Config .text.Error_Handler - 0x0800365c 0xc ./Core/Src/main.o - 0x0800365c Error_Handler - .text.Moto_InitData - 0x08003668 0x2c ./Core/Src/moto_config.o - 0x08003668 Moto_InitData - .text.Moto_UpdateState - 0x08003694 0x120 ./Core/Src/moto_config.o - 0x08003694 Moto_UpdateState - .text.Moto_FilterAngles - 0x080037b4 0x90 ./Core/Src/moto_config.o - 0x080037b4 Moto_FilterAngles - .text.Moto_GetStateString - 0x08003844 0x80 ./Core/Src/moto_config.o - 0x08003844 Moto_GetStateString - .text.Moto_UpdateStats - 0x080038c4 0x142 ./Core/Src/moto_config.o - 0x080038c4 Moto_UpdateStats - .text.Moto_CalibrateMagnetometer - 0x08003a06 0x30 ./Core/Src/moto_config.o - 0x08003a06 Moto_CalibrateMagnetometer - *fill* 0x08003a36 0x2 - .text.Moto_DetectCrash - 0x08003a38 0x58 ./Core/Src/moto_config.o - 0x08003a38 Moto_DetectCrash - .text.Moto_FormatDisplay - 0x08003a90 0x18c ./Core/Src/moto_config.o - 0x08003a90 Moto_FormatDisplay + 0x080010a8 0x8 ./Core/Src/main.o + 0x080010a8 Error_Handler .text.HAL_MspInit - 0x08003c1c 0x48 ./Core/Src/stm32l4xx_hal_msp.o - 0x08003c1c HAL_MspInit - .text.HAL_I2C_MspInit - 0x08003c64 0xbc ./Core/Src/stm32l4xx_hal_msp.o - 0x08003c64 HAL_I2C_MspInit - .text.HAL_UART_MspInit - 0x08003d20 0xb8 ./Core/Src/stm32l4xx_hal_msp.o - 0x08003d20 HAL_UART_MspInit + 0x080010b0 0x48 ./Core/Src/stm32l4xx_hal_msp.o + 0x080010b0 HAL_MspInit + .text.HAL_SPI_MspInit + 0x080010f8 0x88 ./Core/Src/stm32l4xx_hal_msp.o + 0x080010f8 HAL_SPI_MspInit .text.NMI_Handler - 0x08003dd8 0x8 ./Core/Src/stm32l4xx_it.o - 0x08003dd8 NMI_Handler + 0x08001180 0x8 ./Core/Src/stm32l4xx_it.o + 0x08001180 NMI_Handler .text.HardFault_Handler - 0x08003de0 0x8 ./Core/Src/stm32l4xx_it.o - 0x08003de0 HardFault_Handler + 0x08001188 0x8 ./Core/Src/stm32l4xx_it.o + 0x08001188 HardFault_Handler .text.MemManage_Handler - 0x08003de8 0x8 ./Core/Src/stm32l4xx_it.o - 0x08003de8 MemManage_Handler + 0x08001190 0x8 ./Core/Src/stm32l4xx_it.o + 0x08001190 MemManage_Handler .text.BusFault_Handler - 0x08003df0 0x8 ./Core/Src/stm32l4xx_it.o - 0x08003df0 BusFault_Handler + 0x08001198 0x8 ./Core/Src/stm32l4xx_it.o + 0x08001198 BusFault_Handler .text.UsageFault_Handler - 0x08003df8 0x8 ./Core/Src/stm32l4xx_it.o - 0x08003df8 UsageFault_Handler + 0x080011a0 0x8 ./Core/Src/stm32l4xx_it.o + 0x080011a0 UsageFault_Handler .text.SVC_Handler - 0x08003e00 0xe ./Core/Src/stm32l4xx_it.o - 0x08003e00 SVC_Handler + 0x080011a8 0xe ./Core/Src/stm32l4xx_it.o + 0x080011a8 SVC_Handler .text.DebugMon_Handler - 0x08003e0e 0xe ./Core/Src/stm32l4xx_it.o - 0x08003e0e DebugMon_Handler + 0x080011b6 0xe ./Core/Src/stm32l4xx_it.o + 0x080011b6 DebugMon_Handler .text.PendSV_Handler - 0x08003e1c 0xe ./Core/Src/stm32l4xx_it.o - 0x08003e1c PendSV_Handler + 0x080011c4 0xe ./Core/Src/stm32l4xx_it.o + 0x080011c4 PendSV_Handler .text.SysTick_Handler - 0x08003e2a 0xc ./Core/Src/stm32l4xx_it.o - 0x08003e2a SysTick_Handler - .text._getpid 0x08003e36 0x10 ./Core/Src/syscalls.o - 0x08003e36 _getpid - .text._kill 0x08003e46 0x20 ./Core/Src/syscalls.o - 0x08003e46 _kill - .text._exit 0x08003e66 0x16 ./Core/Src/syscalls.o - 0x08003e66 _exit - .text._read 0x08003e7c 0x3a ./Core/Src/syscalls.o - 0x08003e7c _read - .text._write 0x08003eb6 0x38 ./Core/Src/syscalls.o - 0x08003eb6 _write - .text._close 0x08003eee 0x18 ./Core/Src/syscalls.o - 0x08003eee _close - .text._fstat 0x08003f06 0x20 ./Core/Src/syscalls.o - 0x08003f06 _fstat - .text._isatty 0x08003f26 0x16 ./Core/Src/syscalls.o - 0x08003f26 _isatty - .text._lseek 0x08003f3c 0x1a ./Core/Src/syscalls.o - 0x08003f3c _lseek - *fill* 0x08003f56 0x2 - .text._sbrk 0x08003f58 0x6c ./Core/Src/sysmem.o - 0x08003f58 _sbrk + 0x080011d2 0xc ./Core/Src/stm32l4xx_it.o + 0x080011d2 SysTick_Handler + .text._getpid 0x080011de 0x10 ./Core/Src/syscalls.o + 0x080011de _getpid + .text._kill 0x080011ee 0x20 ./Core/Src/syscalls.o + 0x080011ee _kill + .text._exit 0x0800120e 0x16 ./Core/Src/syscalls.o + 0x0800120e _exit + .text._read 0x08001224 0x3a ./Core/Src/syscalls.o + 0x08001224 _read + .text._write 0x0800125e 0x38 ./Core/Src/syscalls.o + 0x0800125e _write + .text._close 0x08001296 0x18 ./Core/Src/syscalls.o + 0x08001296 _close + .text._fstat 0x080012ae 0x20 ./Core/Src/syscalls.o + 0x080012ae _fstat + .text._isatty 0x080012ce 0x16 ./Core/Src/syscalls.o + 0x080012ce _isatty + .text._lseek 0x080012e4 0x1a ./Core/Src/syscalls.o + 0x080012e4 _lseek + *fill* 0x080012fe 0x2 + .text._sbrk 0x08001300 0x6c ./Core/Src/sysmem.o + 0x08001300 _sbrk .text.SystemInit - 0x08003fc4 0x24 ./Core/Src/system_stm32l4xx.o - 0x08003fc4 SystemInit + 0x0800136c 0x24 ./Core/Src/system_stm32l4xx.o + 0x0800136c SystemInit .text.Reset_Handler - 0x08003fe8 0x50 ./Core/Startup/startup_stm32l452retxp.o - 0x08003fe8 Reset_Handler + 0x08001390 0x50 ./Core/Startup/startup_stm32l452retxp.o + 0x08001390 Reset_Handler .text.Default_Handler - 0x08004038 0x2 ./Core/Startup/startup_stm32l452retxp.o - 0x08004038 RTC_Alarm_IRQHandler - 0x08004038 EXTI2_IRQHandler - 0x08004038 TIM1_CC_IRQHandler - 0x08004038 TSC_IRQHandler - 0x08004038 TAMP_STAMP_IRQHandler - 0x08004038 EXTI3_IRQHandler - 0x08004038 LPTIM2_IRQHandler - 0x08004038 DFSDM1_FLT1_IRQHandler - 0x08004038 I2C3_ER_IRQHandler - 0x08004038 EXTI0_IRQHandler - 0x08004038 I2C2_EV_IRQHandler - 0x08004038 CAN1_RX0_IRQHandler - 0x08004038 FPU_IRQHandler - 0x08004038 TIM1_UP_TIM16_IRQHandler - 0x08004038 SPI1_IRQHandler - 0x08004038 TIM6_DAC_IRQHandler - 0x08004038 DMA2_Channel2_IRQHandler - 0x08004038 DMA1_Channel4_IRQHandler - 0x08004038 ADC1_IRQHandler - 0x08004038 USART3_IRQHandler - 0x08004038 DMA1_Channel7_IRQHandler - 0x08004038 CAN1_RX1_IRQHandler - 0x08004038 DMA2_Channel1_IRQHandler - 0x08004038 QUADSPI_IRQHandler - 0x08004038 I2C1_EV_IRQHandler - 0x08004038 DMA1_Channel6_IRQHandler - 0x08004038 UART4_IRQHandler - 0x08004038 DMA2_Channel4_IRQHandler - 0x08004038 TIM3_IRQHandler - 0x08004038 RCC_IRQHandler - 0x08004038 TIM1_TRG_COM_IRQHandler - 0x08004038 DMA1_Channel1_IRQHandler - 0x08004038 Default_Handler - 0x08004038 DMA2_Channel7_IRQHandler - 0x08004038 EXTI15_10_IRQHandler - 0x08004038 SDMMC1_IRQHandler - 0x08004038 I2C3_EV_IRQHandler - 0x08004038 USB_IRQHandler - 0x08004038 EXTI9_5_IRQHandler - 0x08004038 RTC_WKUP_IRQHandler - 0x08004038 PVD_PVM_IRQHandler - 0x08004038 SPI2_IRQHandler - 0x08004038 CAN1_TX_IRQHandler - 0x08004038 DMA2_Channel5_IRQHandler - 0x08004038 CRS_IRQHandler - 0x08004038 DMA1_Channel5_IRQHandler - 0x08004038 EXTI4_IRQHandler - 0x08004038 RNG_IRQHandler - 0x08004038 DMA1_Channel3_IRQHandler - 0x08004038 COMP_IRQHandler - 0x08004038 WWDG_IRQHandler - 0x08004038 I2C4_EV_IRQHandler - 0x08004038 LPUART1_IRQHandler - 0x08004038 DMA2_Channel6_IRQHandler - 0x08004038 TIM2_IRQHandler - 0x08004038 EXTI1_IRQHandler - 0x08004038 USART2_IRQHandler - 0x08004038 DFSDM1_FLT0_IRQHandler - 0x08004038 I2C2_ER_IRQHandler - 0x08004038 DMA1_Channel2_IRQHandler - 0x08004038 CAN1_SCE_IRQHandler - 0x08004038 FLASH_IRQHandler - 0x08004038 USART1_IRQHandler - 0x08004038 SPI3_IRQHandler - 0x08004038 I2C1_ER_IRQHandler - 0x08004038 LPTIM1_IRQHandler - 0x08004038 I2C4_ER_IRQHandler - 0x08004038 SAI1_IRQHandler - 0x08004038 DMA2_Channel3_IRQHandler - 0x08004038 TIM1_BRK_TIM15_IRQHandler - *fill* 0x0800403a 0x2 + 0x080013e0 0x2 ./Core/Startup/startup_stm32l452retxp.o + 0x080013e0 RTC_Alarm_IRQHandler + 0x080013e0 EXTI2_IRQHandler + 0x080013e0 TIM1_CC_IRQHandler + 0x080013e0 TSC_IRQHandler + 0x080013e0 TAMP_STAMP_IRQHandler + 0x080013e0 EXTI3_IRQHandler + 0x080013e0 LPTIM2_IRQHandler + 0x080013e0 DFSDM1_FLT1_IRQHandler + 0x080013e0 I2C3_ER_IRQHandler + 0x080013e0 EXTI0_IRQHandler + 0x080013e0 I2C2_EV_IRQHandler + 0x080013e0 CAN1_RX0_IRQHandler + 0x080013e0 FPU_IRQHandler + 0x080013e0 TIM1_UP_TIM16_IRQHandler + 0x080013e0 SPI1_IRQHandler + 0x080013e0 TIM6_DAC_IRQHandler + 0x080013e0 DMA2_Channel2_IRQHandler + 0x080013e0 DMA1_Channel4_IRQHandler + 0x080013e0 ADC1_IRQHandler + 0x080013e0 USART3_IRQHandler + 0x080013e0 DMA1_Channel7_IRQHandler + 0x080013e0 CAN1_RX1_IRQHandler + 0x080013e0 DMA2_Channel1_IRQHandler + 0x080013e0 QUADSPI_IRQHandler + 0x080013e0 I2C1_EV_IRQHandler + 0x080013e0 DMA1_Channel6_IRQHandler + 0x080013e0 UART4_IRQHandler + 0x080013e0 DMA2_Channel4_IRQHandler + 0x080013e0 TIM3_IRQHandler + 0x080013e0 RCC_IRQHandler + 0x080013e0 TIM1_TRG_COM_IRQHandler + 0x080013e0 DMA1_Channel1_IRQHandler + 0x080013e0 Default_Handler + 0x080013e0 DMA2_Channel7_IRQHandler + 0x080013e0 EXTI15_10_IRQHandler + 0x080013e0 SDMMC1_IRQHandler + 0x080013e0 I2C3_EV_IRQHandler + 0x080013e0 USB_IRQHandler + 0x080013e0 EXTI9_5_IRQHandler + 0x080013e0 RTC_WKUP_IRQHandler + 0x080013e0 PVD_PVM_IRQHandler + 0x080013e0 SPI2_IRQHandler + 0x080013e0 CAN1_TX_IRQHandler + 0x080013e0 DMA2_Channel5_IRQHandler + 0x080013e0 CRS_IRQHandler + 0x080013e0 DMA1_Channel5_IRQHandler + 0x080013e0 EXTI4_IRQHandler + 0x080013e0 RNG_IRQHandler + 0x080013e0 DMA1_Channel3_IRQHandler + 0x080013e0 COMP_IRQHandler + 0x080013e0 WWDG_IRQHandler + 0x080013e0 I2C4_EV_IRQHandler + 0x080013e0 LPUART1_IRQHandler + 0x080013e0 DMA2_Channel6_IRQHandler + 0x080013e0 TIM2_IRQHandler + 0x080013e0 EXTI1_IRQHandler + 0x080013e0 USART2_IRQHandler + 0x080013e0 DFSDM1_FLT0_IRQHandler + 0x080013e0 I2C2_ER_IRQHandler + 0x080013e0 DMA1_Channel2_IRQHandler + 0x080013e0 CAN1_SCE_IRQHandler + 0x080013e0 FLASH_IRQHandler + 0x080013e0 USART1_IRQHandler + 0x080013e0 SPI3_IRQHandler + 0x080013e0 I2C1_ER_IRQHandler + 0x080013e0 LPTIM1_IRQHandler + 0x080013e0 I2C4_ER_IRQHandler + 0x080013e0 SAI1_IRQHandler + 0x080013e0 DMA2_Channel3_IRQHandler + 0x080013e0 TIM1_BRK_TIM15_IRQHandler + *fill* 0x080013e2 0x2 .text.HAL_Init - 0x0800403c 0x40 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0800403c HAL_Init + 0x080013e4 0x40 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x080013e4 HAL_Init .text.HAL_InitTick - 0x0800407c 0x78 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0800407c HAL_InitTick + 0x08001424 0x78 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x08001424 HAL_InitTick .text.HAL_IncTick - 0x080040f4 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x080040f4 HAL_IncTick + 0x0800149c 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x0800149c HAL_IncTick .text.HAL_GetTick - 0x0800411c 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0800411c HAL_GetTick + 0x080014c4 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x080014c4 HAL_GetTick .text.HAL_Delay - 0x08004134 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x08004134 HAL_Delay + 0x080014dc 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x080014dc HAL_Delay .text.__NVIC_SetPriorityGrouping - 0x0800417c 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x08001524 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .text.__NVIC_GetPriorityGrouping - 0x080041c4 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x0800156c 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .text.__NVIC_SetPriority - 0x080041e0 0x54 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x08001588 0x54 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .text.NVIC_EncodePriority - 0x08004234 0x66 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - *fill* 0x0800429a 0x2 + 0x080015dc 0x66 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + *fill* 0x08001642 0x2 .text.SysTick_Config - 0x0800429c 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x08001644 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .text.HAL_NVIC_SetPriorityGrouping - 0x080042e0 0x16 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - 0x080042e0 HAL_NVIC_SetPriorityGrouping + 0x08001688 0x16 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x08001688 HAL_NVIC_SetPriorityGrouping .text.HAL_NVIC_SetPriority - 0x080042f6 0x38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - 0x080042f6 HAL_NVIC_SetPriority + 0x0800169e 0x38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x0800169e HAL_NVIC_SetPriority .text.HAL_SYSTICK_Config - 0x0800432e 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - 0x0800432e HAL_SYSTICK_Config - *fill* 0x08004346 0x2 + 0x080016d6 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x080016d6 HAL_SYSTICK_Config + *fill* 0x080016ee 0x2 .text.HAL_GPIO_Init - 0x08004348 0x2f4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - 0x08004348 HAL_GPIO_Init + 0x080016f0 0x2f4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + 0x080016f0 HAL_GPIO_Init .text.HAL_GPIO_WritePin - 0x0800463c 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - 0x0800463c HAL_GPIO_WritePin - .text.HAL_I2C_Init - 0x0800466c 0x136 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0800466c HAL_I2C_Init - *fill* 0x080047a2 0x2 - .text.HAL_I2C_Master_Transmit - 0x080047a4 0x230 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x080047a4 HAL_I2C_Master_Transmit - .text.HAL_I2C_Mem_Write - 0x080049d4 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x080049d4 HAL_I2C_Mem_Write - .text.HAL_I2C_Mem_Read - 0x08004bfc 0x234 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x08004bfc HAL_I2C_Mem_Read - .text.I2C_RequestMemoryWrite - 0x08004e30 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_RequestMemoryRead - 0x08004ed8 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Flush_TXDR - 0x08004f80 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_WaitOnFlagUntilTimeout - 0x08004fc8 0xb2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_WaitOnTXISFlagUntilTimeout - 0x0800507a 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_WaitOnSTOPFlagUntilTimeout - 0x08005108 0x86 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - *fill* 0x0800518e 0x2 - .text.I2C_IsErrorOccurred - 0x08005190 0x1c0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_TransferConfig - 0x08005350 0x64 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2CEx_ConfigAnalogFilter - 0x080053b4 0x96 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - 0x080053b4 HAL_I2CEx_ConfigAnalogFilter - .text.HAL_I2CEx_ConfigDigitalFilter - 0x0800544a 0x98 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - 0x0800544a HAL_I2CEx_ConfigDigitalFilter - *fill* 0x080054e2 0x2 + 0x080019e4 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + 0x080019e4 HAL_GPIO_WritePin .text.HAL_PWREx_GetVoltageRange - 0x080054e4 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - 0x080054e4 HAL_PWREx_GetVoltageRange - .text.HAL_PWREx_ControlVoltageScaling - 0x08005500 0xac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - 0x08005500 HAL_PWREx_ControlVoltageScaling + 0x08001a14 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + 0x08001a14 HAL_PWREx_GetVoltageRange .text.HAL_RCC_OscConfig - 0x080055ac 0x828 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x080055ac HAL_RCC_OscConfig + 0x08001a30 0x828 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + 0x08001a30 HAL_RCC_OscConfig .text.HAL_RCC_ClockConfig - 0x08005dd4 0x200 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x08005dd4 HAL_RCC_ClockConfig + 0x08002258 0x200 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + 0x08002258 HAL_RCC_ClockConfig .text.HAL_RCC_GetSysClockFreq - 0x08005fd4 0x118 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x08005fd4 HAL_RCC_GetSysClockFreq - .text.HAL_RCC_GetHCLKFreq - 0x080060ec 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x080060ec HAL_RCC_GetHCLKFreq - .text.HAL_RCC_GetPCLK1Freq - 0x08006104 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x08006104 HAL_RCC_GetPCLK1Freq - .text.HAL_RCC_GetPCLK2Freq - 0x08006130 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x08006130 HAL_RCC_GetPCLK2Freq + 0x08002458 0x118 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + 0x08002458 HAL_RCC_GetSysClockFreq .text.RCC_SetFlashLatencyFromMSIRange - 0x0800615c 0xc0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCCEx_PeriphCLKConfig - 0x0800621c 0x4d8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - 0x0800621c HAL_RCCEx_PeriphCLKConfig - .text.RCCEx_PLLSAI1_Config - 0x080066f4 0x1e4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_UART_Init - 0x080068d8 0x9c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x080068d8 HAL_UART_Init - .text.HAL_UART_Transmit - 0x08006974 0x112 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x08006974 HAL_UART_Transmit - *fill* 0x08006a86 0x2 - .text.UART_SetConfig - 0x08006a88 0x50c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x08006a88 UART_SetConfig - .text.UART_AdvFeatureConfig - 0x08006f94 0x144 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x08006f94 UART_AdvFeatureConfig - .text.UART_CheckIdleState - 0x080070d8 0x150 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x080070d8 UART_CheckIdleState - .text.UART_WaitOnFlagUntilTimeout - 0x08007228 0xda ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x08007228 UART_WaitOnFlagUntilTimeout - .text.UART_EndRxTransfer - 0x08007302 0xc8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.__cvt 0x080073ca 0xca C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) - 0x080073ca __cvt + 0x08002570 0xc0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .text.HAL_SPI_Init + 0x08002630 0x146 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + 0x08002630 HAL_SPI_Init + .text.HAL_SPI_Transmit + 0x08002776 0x2ec ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + 0x08002776 HAL_SPI_Transmit + *fill* 0x08002a62 0x2 + .text.SPI_WaitFlagStateUntilTimeout + 0x08002a64 0x110 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_WaitFifoStateUntilTimeout + 0x08002b74 0x12c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.SPI_EndRxTxTransaction + 0x08002ca0 0x8c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .text.__cvt 0x08002d2c 0xca C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) + 0x08002d2c __cvt .text.__exponent - 0x08007494 0x74 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) - 0x08007494 __exponent + 0x08002df6 0x74 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) + 0x08002df6 __exponent + *fill* 0x08002e6a 0x2 .text._printf_float - 0x08007508 0x454 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) - 0x08007508 _printf_float + 0x08002e6c 0x454 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) + 0x08002e6c _printf_float .text._printf_common - 0x0800795c 0xda C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) - 0x0800795c _printf_common - *fill* 0x08007a36 0x2 + 0x080032c0 0xda C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) + 0x080032c0 _printf_common + *fill* 0x0800339a 0x2 .text._printf_i - 0x08007a38 0x23c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) - 0x08007a38 _printf_i - .text.std 0x08007c74 0x6c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x0800339c 0x23c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) + 0x0800339c _printf_i + .text.std 0x080035d8 0x6c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) .text.stdio_exit_handler - 0x08007ce0 0x18 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x08003644 0x18 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) .text.cleanup_stdio - 0x08007cf8 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x0800365c 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) .text.global_stdio_init.part.0 - 0x08007d38 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x0800369c 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) .text.__sfp_lock_acquire - 0x08007d74 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) - 0x08007d74 __sfp_lock_acquire + 0x080036d8 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x080036d8 __sfp_lock_acquire .text.__sfp_lock_release - 0x08007d80 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) - 0x08007d80 __sfp_lock_release - .text.__sinit 0x08007d8c 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) - 0x08007d8c __sinit + 0x080036e4 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x080036e4 __sfp_lock_release + .text.__sinit 0x080036f0 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x080036f0 __sinit .text._fwalk_sglue - 0x08007dbc 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) - 0x08007dbc _fwalk_sglue - .text.printf 0x08007df8 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) - 0x08007df8 iprintf - 0x08007df8 printf - .text.snprintf - 0x08007e1c 0x6c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) - 0x08007e1c sniprintf - 0x08007e1c snprintf - .text.__sread 0x08007e88 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) - 0x08007e88 __sread + 0x08003720 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + 0x08003720 _fwalk_sglue + .text.__sread 0x0800375c 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + 0x0800375c __sread .text.__swrite - 0x08007eaa 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) - 0x08007eaa __swrite - .text.__sseek 0x08007ee2 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) - 0x08007ee2 __sseek + 0x0800377e 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + 0x0800377e __swrite + .text.__sseek 0x080037b6 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + 0x080037b6 __sseek .text.__sclose - 0x08007f06 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) - 0x08007f06 __sclose - .text.memset 0x08007f0e 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) - 0x08007f0e memset - *fill* 0x08007f1e 0x2 + 0x080037da 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + 0x080037da __sclose + .text.memset 0x080037e2 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + 0x080037e2 memset + *fill* 0x080037f2 0x2 .text._localeconv_r - 0x08007f20 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-localeconv.o) - 0x08007f20 _localeconv_r + 0x080037f4 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-localeconv.o) + 0x080037f4 _localeconv_r .text._close_r - 0x08007f28 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) - 0x08007f28 _close_r + 0x080037fc 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + 0x080037fc _close_r .text._lseek_r - 0x08007f48 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) - 0x08007f48 _lseek_r - .text._read_r 0x08007f6c 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) - 0x08007f6c _read_r + 0x0800381c 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + 0x0800381c _lseek_r + .text._read_r 0x08003840 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + 0x08003840 _read_r .text._write_r - 0x08007f90 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) - 0x08007f90 _write_r - .text.__errno 0x08007fb4 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) - 0x08007fb4 __errno + 0x08003864 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + 0x08003864 _write_r + .text.__errno 0x08003888 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + 0x08003888 __errno .text.__libc_init_array - 0x08007fc0 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) - 0x08007fc0 __libc_init_array + 0x08003894 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + 0x08003894 __libc_init_array .text.__retarget_lock_init_recursive - 0x08008008 0x2 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) - 0x08008008 __retarget_lock_init_recursive + 0x080038dc 0x2 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + 0x080038dc __retarget_lock_init_recursive .text.__retarget_lock_acquire_recursive - 0x0800800a 0x2 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) - 0x0800800a __retarget_lock_acquire_recursive + 0x080038de 0x2 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + 0x080038de __retarget_lock_acquire_recursive .text.__retarget_lock_release_recursive - 0x0800800c 0x2 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) - 0x0800800c __retarget_lock_release_recursive - .text.quorem 0x0800800e 0x110 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) - *fill* 0x0800811e 0x2 - .text._dtoa_r 0x08008120 0xba0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) - 0x08008120 _dtoa_r - .text._free_r 0x08008cc0 0x94 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) - 0x08008cc0 _free_r - .text.malloc 0x08008d54 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-malloc.o) - 0x08008d54 malloc + 0x080038e0 0x2 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + 0x080038e0 __retarget_lock_release_recursive + .text.quorem 0x080038e2 0x110 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) + *fill* 0x080039f2 0x6 + .text._dtoa_r 0x080039f8 0xba0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) + 0x080039f8 _dtoa_r + .text._free_r 0x08004598 0x94 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + 0x08004598 _free_r + .text.malloc 0x0800462c 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-malloc.o) + 0x0800462c malloc .text.sbrk_aligned - 0x08008d64 0x44 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + 0x0800463c 0x44 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) .text._malloc_r - 0x08008da8 0x100 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) - 0x08008da8 _malloc_r + 0x08004680 0x100 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + 0x08004680 _malloc_r .text.__malloc_lock - 0x08008ea8 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) - 0x08008ea8 __malloc_lock + 0x08004780 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + 0x08004780 __malloc_lock .text.__malloc_unlock - 0x08008eb4 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) - 0x08008eb4 __malloc_unlock - .text._Balloc 0x08008ec0 0x80 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x08008ec0 _Balloc - .text._Bfree 0x08008f40 0x44 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x08008f40 _Bfree + 0x0800478c 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + 0x0800478c __malloc_unlock + .text._Balloc 0x08004798 0x80 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004798 _Balloc + .text._Bfree 0x08004818 0x44 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004818 _Bfree .text.__multadd - 0x08008f84 0x8c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x08008f84 __multadd + 0x0800485c 0x8c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x0800485c __multadd .text.__hi0bits - 0x08009010 0x3e C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x08009010 __hi0bits + 0x080048e8 0x3e C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x080048e8 __hi0bits .text.__lo0bits - 0x0800904e 0x5a C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x0800904e __lo0bits - .text.__i2b 0x080090a8 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x080090a8 __i2b + 0x08004926 0x5a C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004926 __lo0bits + .text.__i2b 0x08004980 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004980 __i2b .text.__multiply - 0x080090d4 0x144 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x080090d4 __multiply + 0x080049ac 0x144 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x080049ac __multiply .text.__pow5mult - 0x08009218 0xb4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x08009218 __pow5mult + 0x08004af0 0xb4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004af0 __pow5mult .text.__lshift - 0x080092cc 0xd8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x080092cc __lshift - .text.__mcmp 0x080093a4 0x36 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x080093a4 __mcmp - *fill* 0x080093da 0x2 - .text.__mdiff 0x080093dc 0x128 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x080093dc __mdiff - .text.__d2b 0x08009504 0xb0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x08009504 __d2b - .text.__ssputs_r - 0x080095b4 0xb6 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) - 0x080095b4 __ssputs_r - *fill* 0x0800966a 0x2 - .text._svfprintf_r - 0x0800966c 0x1f8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) - 0x0800966c _svfiprintf_r - 0x0800966c _svfprintf_r - .text.__sfputc_r - 0x08009864 0x2e C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - .text.__sfputs_r - 0x08009892 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - 0x08009892 __sfputs_r - *fill* 0x080098b6 0x2 - .text._vfprintf_r - 0x080098b8 0x230 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - 0x080098b8 _vfprintf_r - 0x080098b8 _vfiprintf_r + 0x08004ba4 0xd8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004ba4 __lshift + .text.__mcmp 0x08004c7c 0x36 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004c7c __mcmp + *fill* 0x08004cb2 0x2 + .text.__mdiff 0x08004cb4 0x128 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004cb4 __mdiff + .text.__d2b 0x08004ddc 0xb0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08004ddc __d2b .text.__sflush_r - 0x08009ae8 0x108 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) - 0x08009ae8 __sflush_r + 0x08004e8c 0x108 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + 0x08004e8c __sflush_r .text._fflush_r - 0x08009bf0 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) - 0x08009bf0 _fflush_r - .text.__swbuf_r - 0x08009c40 0x7c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) - 0x08009c40 __swbuf_r - .text.__swsetup_r - 0x08009cbc 0xac C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) - 0x08009cbc __swsetup_r - .text.memmove 0x08009d68 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) - 0x08009d68 memmove - .text._sbrk_r 0x08009d9c 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) - 0x08009d9c _sbrk_r - .text.memcpy 0x08009dbc 0x1c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memcpy-stub.o) - 0x08009dbc memcpy + 0x08004f94 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + 0x08004f94 _fflush_r + .text._sbrk_r 0x08004fe4 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + 0x08004fe4 _sbrk_r + .text.memcpy 0x08005004 0x1c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memcpy-stub.o) + 0x08005004 memcpy .text.__assert_func - 0x08009dd8 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) - 0x08009dd8 __assert_func + 0x08005020 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) + 0x08005020 __assert_func .text._calloc_r - 0x08009e14 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-callocr.o) - 0x08009e14 _calloc_r + 0x0800505c 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-callocr.o) + 0x0800505c _calloc_r .text.__ascii_mbtowc - 0x08009e3c 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mbtowc_r.o) - 0x08009e3c __ascii_mbtowc - .text._realloc_r - 0x08009e60 0x5c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) - 0x08009e60 _realloc_r + 0x08005084 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mbtowc_r.o) + 0x08005084 __ascii_mbtowc .text.__ascii_wctomb - 0x08009ebc 0x1a C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) - 0x08009ebc __ascii_wctomb - *fill* 0x08009ed6 0x2 - .text.fprintf 0x08009ed8 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) - 0x08009ed8 fiprintf - 0x08009ed8 fprintf - .text.__swhatbuf_r - 0x08009efc 0x4c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) - 0x08009efc __swhatbuf_r - .text.__smakebuf_r - 0x08009f48 0x78 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) - 0x08009f48 __smakebuf_r - .text._fstat_r - 0x08009fc0 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) - 0x08009fc0 _fstat_r - .text._isatty_r - 0x08009fe4 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) - 0x08009fe4 _isatty_r - .text.abort 0x0800a004 0xe C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) - 0x0800a004 abort - .text._malloc_usable_size_r - 0x0800a012 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) - 0x0800a012 _malloc_usable_size_r + 0x080050a8 0x1a C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) + 0x080050a8 __ascii_wctomb + *fill* 0x080050c2 0x2 + .text.fprintf 0x080050c4 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) + 0x080050c4 fiprintf + 0x080050c4 fprintf + .text.abort 0x080050e8 0xe C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) + 0x080050e8 abort + .text.__sfputc_r + 0x080050f6 0x2e C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + .text.__sfputs_r + 0x08005124 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + 0x08005124 __sfputs_r + .text._vfprintf_r + 0x08005148 0x230 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + 0x08005148 _vfprintf_r + 0x08005148 _vfiprintf_r + .text.__swbuf_r + 0x08005378 0x7c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) + 0x08005378 __swbuf_r + .text.__swsetup_r + 0x080053f4 0xac C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) + 0x080053f4 __swsetup_r .text._raise_r - 0x0800a022 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) - 0x0800a022 _raise_r - *fill* 0x0800a072 0x2 - .text.raise 0x0800a074 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) - 0x0800a074 raise - .text._kill_r 0x0800a084 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) - 0x0800a084 _kill_r + 0x080054a0 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) + 0x080054a0 _raise_r + .text.raise 0x080054f0 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) + 0x080054f0 raise + .text._kill_r 0x08005500 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) + 0x08005500 _kill_r .text._getpid_r - 0x0800a0a8 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) - 0x0800a0a8 _getpid_r - .text.asinf 0x0800a0ac 0x58 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) - 0x0800a0ac asinf - .text.atan2f 0x0800a104 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) - 0x0800a104 atan2f - .text.powf 0x0800a108 0xae C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) - 0x0800a108 powf - *fill* 0x0800a1b6 0x2 - .text.sqrtf 0x0800a1b8 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) - 0x0800a1b8 sqrtf - .text.fabsf 0x0800a1f4 0xe C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) - 0x0800a1f4 fabsf - *fill* 0x0800a202 0x2 - .text.sinf 0x0800a204 0x8c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) - 0x0800a204 sinf - .text.finitef 0x0800a290 0x14 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) - 0x0800a290 finitef - .text.nanf 0x0800a2a4 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) - 0x0800a2a4 nanf - .text.__ieee754_sqrtf - 0x0800a2b0 0x6 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) - 0x0800a2b0 __ieee754_sqrtf - *fill* 0x0800a2b6 0x2 - .text.__kernel_cosf - 0x0800a2b8 0xb0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) - 0x0800a2b8 __kernel_cosf - .text.__kernel_sinf - 0x0800a368 0x90 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) - 0x0800a368 __kernel_sinf - .text.__ieee754_asinf - 0x0800a3f8 0x1c8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) - 0x0800a3f8 __ieee754_asinf - .text.__ieee754_atan2f - 0x0800a5c0 0x140 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) - 0x0800a5c0 __ieee754_atan2f - .text.__ieee754_powf - 0x0800a700 0x59c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) - 0x0800a700 __ieee754_powf - .text.__ieee754_rem_pio2f - 0x0800ac9c 0x260 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) - 0x0800ac9c __ieee754_rem_pio2f - .text.atanf 0x0800aefc 0x1a8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) - 0x0800aefc atanf - .text.scalbnf 0x0800b0a4 0xcc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) - 0x0800b0a4 scalbnf - .text.with_errnof - 0x0800b170 0x1c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) - .text.xflowf 0x0800b18c 0x16 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) - *fill* 0x0800b1a2 0x2 - .text.__math_uflowf - 0x0800b1a4 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) - 0x0800b1a4 __math_uflowf - .text.__math_oflowf - 0x0800b1b0 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) - 0x0800b1b0 __math_oflowf - .text.__kernel_rem_pio2f - 0x0800b1bc 0x4d0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) - 0x0800b1bc __kernel_rem_pio2f - .text.floorf 0x0800b68c 0x88 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) - 0x0800b68c floorf + 0x08005524 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) + 0x08005524 _getpid_r + .text.__swhatbuf_r + 0x08005528 0x4c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) + 0x08005528 __swhatbuf_r + .text.__smakebuf_r + 0x08005574 0x78 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) + 0x08005574 __smakebuf_r + .text._fstat_r + 0x080055ec 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) + 0x080055ec _fstat_r + .text._isatty_r + 0x08005610 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) + 0x08005610 _isatty_r *(.glue_7) - .glue_7 0x0800b714 0x0 linker stubs + .glue_7 0x08005630 0x0 linker stubs *(.glue_7t) - .glue_7t 0x0800b714 0x0 linker stubs + .glue_7t 0x08005630 0x0 linker stubs *(.eh_frame) - .eh_frame 0x0800b714 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .eh_frame 0x08005630 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o *(.init) - .init 0x0800b714 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o - 0x0800b714 _init - .init 0x0800b718 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + .init 0x08005630 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o + 0x08005630 _init + .init 0x08005634 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o *(.fini) - .fini 0x0800b720 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o - 0x0800b720 _fini - .fini 0x0800b724 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o - 0x0800b72c . = ALIGN (0x4) - 0x0800b72c _etext = . + .fini 0x0800563c 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o + 0x0800563c _fini + .fini 0x08005640 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + 0x08005648 . = ALIGN (0x4) + 0x08005648 _etext = . -.vfp11_veneer 0x0800b72c 0x0 - .vfp11_veneer 0x0800b72c 0x0 linker stubs +.vfp11_veneer 0x08005648 0x0 + .vfp11_veneer 0x08005648 0x0 linker stubs -.v4_bx 0x0800b72c 0x0 - .v4_bx 0x0800b72c 0x0 linker stubs +.v4_bx 0x08005648 0x0 + .v4_bx 0x08005648 0x0 linker stubs -.iplt 0x0800b72c 0x0 - .iplt 0x0800b72c 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o +.iplt 0x08005648 0x0 + .iplt 0x08005648 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o -.rodata 0x0800b730 0x9ec - 0x0800b730 . = ALIGN (0x4) +.rodata 0x08005648 0x3b4 + 0x08005648 . = ALIGN (0x4) *(.rodata) - .rodata 0x0800b730 0x18 ./Core/Src/FusionAhrs.o - .rodata 0x0800b748 0x74 ./Core/Src/main.o - .rodata 0x0800b7bc 0x17f ./Core/Src/moto_config.o *(.rodata*) - *fill* 0x0800b93b 0x1 .rodata.AHBPrescTable - 0x0800b93c 0x10 ./Core/Src/system_stm32l4xx.o - 0x0800b93c AHBPrescTable - .rodata.APBPrescTable - 0x0800b94c 0x8 ./Core/Src/system_stm32l4xx.o - 0x0800b94c APBPrescTable + 0x08005648 0x10 ./Core/Src/system_stm32l4xx.o + 0x08005648 AHBPrescTable .rodata.MSIRangeTable - 0x0800b954 0x30 ./Core/Src/system_stm32l4xx.o - 0x0800b954 MSIRangeTable + 0x08005658 0x30 ./Core/Src/system_stm32l4xx.o + 0x08005658 MSIRangeTable .rodata._printf_float.str1.1 - 0x0800b984 0x171 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) + 0x08005688 0x171 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) 0x12 (size before relaxing) .rodata._printf_i.str1.1 - 0x0800baf5 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) + 0x080057f9 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) .rodata._dtoa_r.str1.1 - 0x0800baf5 0x8f C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) + 0x080057f9 0x8f C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) .rodata._Balloc.str1.1 - 0x0800baf5 0x70 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x080057f9 0x70 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) .rodata.__multadd.str1.1 - 0x0800baf5 0x11 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - *fill* 0x0800baf5 0x3 - .rodata.p05.0 0x0800baf8 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - *fill* 0x0800bb04 0x4 + 0x080057f9 0x11 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + *fill* 0x080057f9 0x3 + .rodata.p05.0 0x080057fc 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) .rodata.__mprec_bigtens - 0x0800bb08 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x0800bb08 __mprec_bigtens + 0x08005808 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08005808 __mprec_bigtens .rodata.__mprec_tens - 0x0800bb30 0xc8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - 0x0800bb30 __mprec_tens - .rodata._svfprintf_r.str1.1 - 0x0800bbf8 0x11 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) - .rodata._vfprintf_r.str1.1 - 0x0800bbf8 0x11 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + 0x08005830 0xc8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x08005830 __mprec_tens .rodata._setlocale_r.str1.1 - 0x0800bbf8 0x9 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) + 0x080058f8 0x9 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) .rodata.str1.1 - 0x0800bbf8 0x2 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) + 0x080058f8 0x2 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) .rodata.__assert_func.str1.1 - 0x0800bbf8 0x3d C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) + 0x080058f8 0x3d C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) .rodata._ctype_ - 0x0800bbf8 0x101 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-ctype_.o) - 0x0800bbf8 _ctype_ - .rodata.asinf.str1.1 - 0x0800bcf9 0x1 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) - *fill* 0x0800bcf9 0x3 - .rodata.CSWTCH.9 - 0x0800bcfc 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) - .rodata.CSWTCH.8 - 0x0800bd08 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) - .rodata.dp_l 0x0800bd14 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) - .rodata.dp_h 0x0800bd1c 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) - .rodata.bp 0x0800bd24 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) - .rodata.npio2_hw - 0x0800bd2c 0x80 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) - .rodata.two_over_pi - 0x0800bdac 0x318 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) - .rodata.atanlo - 0x0800c0c4 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) - .rodata.atanhi - 0x0800c0d4 0x10 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) - .rodata.PIo2 0x0800c0e4 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) - .rodata.init_jk - 0x0800c110 0xc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) - 0x0800c11c . = ALIGN (0x4) + 0x080058f8 0x101 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-ctype_.o) + 0x080058f8 _ctype_ + .rodata._vfprintf_r.str1.1 + 0x080059f9 0x11 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + 0x08005a0c . = ALIGN (0x4) + *fill* 0x080059f9 0x3 -.ARM.extab 0x0800c11c 0x0 - 0x0800c11c . = ALIGN (0x4) +.ARM.extab 0x080059fc 0x0 + 0x080059fc . = ALIGN (0x4) *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x0800c11c . = ALIGN (0x4) + 0x080059fc . = ALIGN (0x4) -.ARM 0x0800c11c 0x8 - 0x0800c11c . = ALIGN (0x4) - 0x0800c11c __exidx_start = . +.ARM 0x080059fc 0x8 + 0x080059fc . = ALIGN (0x4) + 0x080059fc __exidx_start = . *(.ARM.exidx*) - .ARM.exidx 0x0800c11c 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memchr.o) - .ARM.exidx 0x0800c124 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-strlen.o) + .ARM.exidx 0x080059fc 0x8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memchr.o) + .ARM.exidx 0x08005a04 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-strlen.o) 0x8 (size before relaxing) - .ARM.exidx 0x0800c124 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) - 0x8 (size before relaxing) - 0x0800c124 __exidx_end = . - 0x0800c124 . = ALIGN (0x4) + 0x08005a04 __exidx_end = . + 0x08005a04 . = ALIGN (0x4) -.preinit_array 0x0800c124 0x0 - 0x0800c124 . = ALIGN (0x4) - 0x0800c124 PROVIDE (__preinit_array_start = .) +.preinit_array 0x08005a04 0x0 + 0x08005a04 . = ALIGN (0x4) + 0x08005a04 PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x0800c124 PROVIDE (__preinit_array_end = .) - 0x0800c124 . = ALIGN (0x4) + 0x08005a04 PROVIDE (__preinit_array_end = .) + 0x08005a04 . = ALIGN (0x4) -.init_array 0x0800c124 0x4 - 0x0800c124 . = ALIGN (0x4) - 0x0800c124 PROVIDE (__init_array_start = .) +.init_array 0x08005a04 0x4 + 0x08005a04 . = ALIGN (0x4) + 0x08005a04 PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) *(.init_array*) - .init_array 0x0800c124 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o - 0x0800c128 PROVIDE (__init_array_end = .) - 0x0800c128 . = ALIGN (0x4) + .init_array 0x08005a04 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + 0x08005a08 PROVIDE (__init_array_end = .) + 0x08005a08 . = ALIGN (0x4) -.fini_array 0x0800c128 0x4 - 0x0800c128 . = ALIGN (0x4) +.fini_array 0x08005a08 0x4 + 0x08005a08 . = ALIGN (0x4) [!provide] PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x0800c128 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .fini_array 0x08005a08 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o [!provide] PROVIDE (__fini_array_end = .) - 0x0800c12c . = ALIGN (0x4) - 0x0800c12c _sidata = LOADADDR (.data) + 0x08005a0c . = ALIGN (0x4) + 0x08005a0c _sidata = LOADADDR (.data) -.rel.dyn 0x0800c12c 0x0 - .rel.iplt 0x0800c12c 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o +.rel.dyn 0x08005a0c 0x0 + .rel.iplt 0x08005a0c 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o -.data 0x20000000 0x1d4 load address 0x0800c12c +.data 0x20000000 0x1d4 load address 0x08005a0c 0x20000000 . = ALIGN (0x4) 0x20000000 _sdata = . *(.data) @@ -4401,78 +5000,61 @@ LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext 0x200001d4 . = ALIGN (0x4) 0x200001d4 _edata = . -.igot.plt 0x200001d4 0x0 load address 0x0800c300 +.igot.plt 0x200001d4 0x0 load address 0x08005be0 .igot.plt 0x200001d4 0x0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o 0x200001d4 . = ALIGN (0x4) -.bss 0x200001d4 0x31c load address 0x0800c300 +.bss 0x200001d4 0x5d8 load address 0x08005be0 0x200001d4 _sbss = . 0x200001d4 __bss_start__ = _sbss *(.bss) .bss 0x200001d4 0x1c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o *(.bss*) - .bss.hi2c1 0x200001f0 0x54 ./Core/Src/main.o - 0x200001f0 hi2c1 - .bss.huart2 0x20000244 0x88 ./Core/Src/main.o - 0x20000244 huart2 - .bss.ahrs 0x200002cc 0x74 ./Core/Src/main.o - 0x200002cc ahrs - .bss.moto_data - 0x20000340 0x24 ./Core/Src/main.o - 0x20000340 moto_data - .bss.moto_stats - 0x20000364 0x28 ./Core/Src/main.o - 0x20000364 moto_stats - .bss.mx_filtered - 0x2000038c 0x4 ./Core/Src/main.o - 0x2000038c mx_filtered - .bss.my_filtered - 0x20000390 0x4 ./Core/Src/main.o - 0x20000390 my_filtered - .bss.mz_filtered - 0x20000394 0x4 ./Core/Src/main.o - 0x20000394 mz_filtered - .bss.uart_counter.0 - 0x20000398 0x4 ./Core/Src/main.o + .bss.hspi_gc9a01 + 0x200001f0 0x4 ./Core/Src/gc9a01.o + .bss.data.1 0x200001f4 0x400 ./Core/Src/gc9a01.o + .bss.hspi1 0x200005f4 0x64 ./Core/Src/main.o + 0x200005f4 hspi1 .bss.__sbrk_heap_end - 0x2000039c 0x4 ./Core/Src/sysmem.o - .bss.uwTick 0x200003a0 0x4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x200003a0 uwTick - .bss.__sf 0x200003a4 0x138 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) - 0x200003a4 __sf + 0x20000658 0x4 ./Core/Src/sysmem.o + .bss.uwTick 0x2000065c 0x4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x2000065c uwTick + .bss.__sf 0x20000660 0x138 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x20000660 __sf .bss.__stdio_exit_handler - 0x200004dc 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) - 0x200004dc __stdio_exit_handler - .bss.errno 0x200004e0 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) - 0x200004e0 errno + 0x20000798 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x20000798 __stdio_exit_handler + .bss.errno 0x2000079c 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + 0x2000079c errno .bss.__lock___malloc_recursive_mutex - 0x200004e4 0x1 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) - 0x200004e4 __lock___malloc_recursive_mutex + 0x200007a0 0x1 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + 0x200007a0 __lock___malloc_recursive_mutex .bss.__lock___sfp_recursive_mutex - 0x200004e5 0x1 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) - 0x200004e5 __lock___sfp_recursive_mutex - *fill* 0x200004e6 0x2 + 0x200007a1 0x1 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + 0x200007a1 __lock___sfp_recursive_mutex + *fill* 0x200007a2 0x2 .bss.__malloc_sbrk_start - 0x200004e8 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) - 0x200004e8 __malloc_sbrk_start + 0x200007a4 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + 0x200007a4 __malloc_sbrk_start .bss.__malloc_free_list - 0x200004ec 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) - 0x200004ec __malloc_free_list + 0x200007a8 0x4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + 0x200007a8 __malloc_free_list *(COMMON) - 0x200004f0 . = ALIGN (0x4) - 0x200004f0 _ebss = . - 0x200004f0 __bss_end__ = _ebss + 0x200007ac . = ALIGN (0x4) + 0x200007ac _ebss = . + 0x200007ac __bss_end__ = _ebss ._user_heap_stack - 0x200004f0 0xc00 load address 0x0800c300 - 0x200004f0 . = ALIGN (0x8) + 0x200007ac 0xc04 load address 0x08005be0 + 0x200007b0 . = ALIGN (0x8) + *fill* 0x200007ac 0x4 [!provide] PROVIDE (end = .) - 0x200004f0 PROVIDE (_end = .) - 0x200008f0 . = (. + _Min_Heap_Size) - *fill* 0x200004f0 0x400 - 0x200010f0 . = (. + _Min_Stack_Size) - *fill* 0x200008f0 0x800 - 0x200010f0 . = ALIGN (0x8) + 0x200007b0 PROVIDE (_end = .) + 0x20000bb0 . = (. + _Min_Heap_Size) + *fill* 0x200007b0 0x400 + 0x200013b0 . = (. + _Min_Stack_Size) + *fill* 0x20000bb0 0x800 + 0x200013b0 . = ALIGN (0x8) /DISCARD/ libc.a(*) @@ -4487,508 +5069,350 @@ LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext .ARM.attributes 0x00000022 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o .ARM.attributes - 0x00000056 0x34 ./Core/Src/FusionAhrs.o + 0x00000056 0x34 ./Core/Src/gc9a01.o .ARM.attributes - 0x0000008a 0x34 ./Core/Src/icm20948.o + 0x0000008a 0x34 ./Core/Src/main.o .ARM.attributes - 0x000000be 0x34 ./Core/Src/lcd_i2c.o + 0x000000be 0x34 ./Core/Src/stm32l4xx_hal_msp.o .ARM.attributes - 0x000000f2 0x34 ./Core/Src/main.o + 0x000000f2 0x34 ./Core/Src/stm32l4xx_it.o .ARM.attributes - 0x00000126 0x34 ./Core/Src/moto_config.o + 0x00000126 0x34 ./Core/Src/syscalls.o .ARM.attributes - 0x0000015a 0x34 ./Core/Src/stm32l4xx_hal_msp.o + 0x0000015a 0x34 ./Core/Src/sysmem.o .ARM.attributes - 0x0000018e 0x34 ./Core/Src/stm32l4xx_it.o + 0x0000018e 0x34 ./Core/Src/system_stm32l4xx.o .ARM.attributes - 0x000001c2 0x34 ./Core/Src/syscalls.o + 0x000001c2 0x21 ./Core/Startup/startup_stm32l452retxp.o .ARM.attributes - 0x000001f6 0x34 ./Core/Src/sysmem.o + 0x000001e3 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .ARM.attributes - 0x0000022a 0x34 ./Core/Src/system_stm32l4xx.o + 0x00000217 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .ARM.attributes - 0x0000025e 0x21 ./Core/Startup/startup_stm32l452retxp.o + 0x0000024b 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .ARM.attributes - 0x0000027f 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x0000027f 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .ARM.attributes - 0x000002b3 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x000002b3 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .ARM.attributes - 0x000002e7 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + 0x000002e7 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o .ARM.attributes - 0x0000031b 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o + 0x0000031b 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) .ARM.attributes - 0x0000034f 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o + 0x0000034f 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) .ARM.attributes - 0x00000383 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + 0x00000383 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) .ARM.attributes - 0x000003b7 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + 0x000003b7 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) .ARM.attributes - 0x000003eb 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o + 0x000003eb 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) .ARM.attributes - 0x0000041f 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + 0x0000041f 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) .ARM.attributes - 0x00000453 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) + 0x00000453 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-localeconv.o) .ARM.attributes - 0x00000487 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) + 0x00000487 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) .ARM.attributes - 0x000004bb 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + 0x000004bb 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) .ARM.attributes - 0x000004ef 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + 0x000004ef 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) .ARM.attributes - 0x00000523 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) + 0x00000523 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) .ARM.attributes - 0x00000557 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) + 0x00000557 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) .ARM.attributes - 0x0000058b 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + 0x0000058b 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) .ARM.attributes - 0x000005bf 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + 0x000005bf 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) .ARM.attributes - 0x000005f3 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-localeconv.o) + 0x000005f3 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) .ARM.attributes - 0x00000627 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + 0x00000627 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) .ARM.attributes - 0x0000065b 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + 0x0000065b 0x1c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memchr.o) .ARM.attributes - 0x0000068f 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) + 0x00000677 0x17 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-strlen.o) .ARM.attributes - 0x000006c3 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + 0x0000068e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) .ARM.attributes - 0x000006f7 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + 0x000006c2 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) .ARM.attributes - 0x0000072b 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + 0x000006f6 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-malloc.o) .ARM.attributes - 0x0000075f 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + 0x0000072a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) .ARM.attributes - 0x00000793 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + 0x0000075e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) .ARM.attributes - 0x000007c7 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + 0x00000792 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) .ARM.attributes - 0x000007fb 0x1c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memchr.o) + 0x000007c6 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) .ARM.attributes - 0x00000817 0x17 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-strlen.o) + 0x000007fa 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) .ARM.attributes - 0x0000082e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) + 0x0000082e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) .ARM.attributes - 0x00000862 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + 0x00000862 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memcpy-stub.o) .ARM.attributes - 0x00000896 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-malloc.o) + 0x00000896 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) .ARM.attributes - 0x000008ca 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + 0x000008ca 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-callocr.o) .ARM.attributes - 0x000008fe 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + 0x000008fe 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mbtowc_r.o) .ARM.attributes - 0x00000932 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + 0x00000932 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) .ARM.attributes - 0x00000966 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) + 0x00000966 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-ctype_.o) .ARM.attributes - 0x0000099a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + 0x0000099a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) .ARM.attributes - 0x000009ce 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + 0x000009ce 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) .ARM.attributes - 0x00000a02 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) + 0x00000a02 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) .ARM.attributes - 0x00000a36 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) + 0x00000a36 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) .ARM.attributes - 0x00000a6a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) + 0x00000a6a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) .ARM.attributes - 0x00000a9e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) + 0x00000a9e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) .ARM.attributes - 0x00000ad2 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + 0x00000ad2 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) .ARM.attributes - 0x00000b06 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memcpy-stub.o) + 0x00000b06 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) .ARM.attributes - 0x00000b3a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) + 0x00000b3a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) .ARM.attributes - 0x00000b6e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-callocr.o) + 0x00000b6e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) .ARM.attributes - 0x00000ba2 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mbtowc_r.o) + 0x00000ba2 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_addsubdf3.o) .ARM.attributes - 0x00000bd6 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) + 0x00000bc4 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_muldivdf3.o) .ARM.attributes - 0x00000c0a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) + 0x00000be6 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_cmpdf2.o) .ARM.attributes - 0x00000c3e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-ctype_.o) + 0x00000c08 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_unorddf2.o) .ARM.attributes - 0x00000c72 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) + 0x00000c2a 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_fixdfsi.o) .ARM.attributes - 0x00000ca6 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) - .ARM.attributes - 0x00000cda 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) - .ARM.attributes - 0x00000d0e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) - .ARM.attributes - 0x00000d42 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) - .ARM.attributes - 0x00000d76 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) - .ARM.attributes - 0x00000daa 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) - .ARM.attributes - 0x00000dde 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) - .ARM.attributes - 0x00000e12 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) - .ARM.attributes - 0x00000e46 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) - .ARM.attributes - 0x00000e7a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) - .ARM.attributes - 0x00000eae 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) - .ARM.attributes - 0x00000ee2 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) - .ARM.attributes - 0x00000f16 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) - .ARM.attributes - 0x00000f4a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) - .ARM.attributes - 0x00000f7e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) - .ARM.attributes - 0x00000fb2 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) - .ARM.attributes - 0x00000fe6 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) - .ARM.attributes - 0x0000101a 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) - .ARM.attributes - 0x0000104e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) - .ARM.attributes - 0x00001082 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) - .ARM.attributes - 0x000010b6 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) - .ARM.attributes - 0x000010ea 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) - .ARM.attributes - 0x0000111e 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) - .ARM.attributes - 0x00001152 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) - .ARM.attributes - 0x00001186 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) - .ARM.attributes - 0x000011ba 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) - .ARM.attributes - 0x000011ee 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) - .ARM.attributes - 0x00001222 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_addsubdf3.o) - .ARM.attributes - 0x00001244 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_muldivdf3.o) - .ARM.attributes - 0x00001266 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_cmpdf2.o) - .ARM.attributes - 0x00001288 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_unorddf2.o) - .ARM.attributes - 0x000012aa 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_fixdfsi.o) - .ARM.attributes - 0x000012cc 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) - .ARM.attributes - 0x000012ee 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) - .ARM.attributes - 0x00001322 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) - .ARM.attributes - 0x00001344 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + 0x00000c4c 0x22 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o OUTPUT(moto-perf.elf elf32-littlearm) LOAD linker stubs LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc.a LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a -.debug_info 0x00000000 0x1083b - .debug_info 0x00000000 0xf05 ./Core/Src/FusionAhrs.o - .debug_info 0x00000f05 0x87c ./Core/Src/icm20948.o - .debug_info 0x00001781 0x780 ./Core/Src/lcd_i2c.o - .debug_info 0x00001f01 0x1b4c ./Core/Src/main.o - .debug_info 0x00003a4d 0x497 ./Core/Src/moto_config.o - .debug_info 0x00003ee4 0x100f ./Core/Src/stm32l4xx_hal_msp.o - .debug_info 0x00004ef3 0x113 ./Core/Src/stm32l4xx_it.o - .debug_info 0x00005006 0x6a3 ./Core/Src/syscalls.o - .debug_info 0x000056a9 0x168 ./Core/Src/sysmem.o - .debug_info 0x00005811 0x5cd ./Core/Src/system_stm32l4xx.o - .debug_info 0x00005dde 0x30 ./Core/Startup/startup_stm32l452retxp.o - .debug_info 0x00005e0e 0xb89 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_info 0x00006997 0xd39 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_info 0x000076d0 0x763 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_info 0x00007e33 0x20d2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_info 0x00009f05 0x98d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_info 0x0000a892 0x920 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_info 0x0000b1b2 0xbd0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_info 0x0000bd82 0xf34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_info 0x0000ccb6 0x3b85 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o +.debug_info 0x00000000 0x89d6 + .debug_info 0x00000000 0x11a8 ./Core/Src/gc9a01.o + .debug_info 0x000011a8 0xb9a ./Core/Src/main.o + .debug_info 0x00001d42 0x131b ./Core/Src/stm32l4xx_hal_msp.o + .debug_info 0x0000305d 0x113 ./Core/Src/stm32l4xx_it.o + .debug_info 0x00003170 0x6a3 ./Core/Src/syscalls.o + .debug_info 0x00003813 0x168 ./Core/Src/sysmem.o + .debug_info 0x0000397b 0x5cd ./Core/Src/system_stm32l4xx.o + .debug_info 0x00003f48 0x30 ./Core/Startup/startup_stm32l452retxp.o + .debug_info 0x00003f78 0xb89 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .debug_info 0x00004b01 0xd39 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .debug_info 0x0000583a 0x763 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .debug_info 0x00005f9d 0x920 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .debug_info 0x000068bd 0xbd0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .debug_info 0x0000748d 0x1549 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o -.debug_abbrev 0x00000000 0x2713 - .debug_abbrev 0x00000000 0x2bd ./Core/Src/FusionAhrs.o - .debug_abbrev 0x000002bd 0x1f8 ./Core/Src/icm20948.o - .debug_abbrev 0x000004b5 0x1e1 ./Core/Src/lcd_i2c.o - .debug_abbrev 0x00000696 0x378 ./Core/Src/main.o - .debug_abbrev 0x00000a0e 0x183 ./Core/Src/moto_config.o - .debug_abbrev 0x00000b91 0x1dd ./Core/Src/stm32l4xx_hal_msp.o - .debug_abbrev 0x00000d6e 0x73 ./Core/Src/stm32l4xx_it.o - .debug_abbrev 0x00000de1 0x1b6 ./Core/Src/syscalls.o - .debug_abbrev 0x00000f97 0xbc ./Core/Src/sysmem.o - .debug_abbrev 0x00001053 0x11a ./Core/Src/system_stm32l4xx.o - .debug_abbrev 0x0000116d 0x24 ./Core/Startup/startup_stm32l452retxp.o - .debug_abbrev 0x00001191 0x242 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_abbrev 0x000013d3 0x31c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_abbrev 0x000016ef 0x1cb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_abbrev 0x000018ba 0x261 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_abbrev 0x00001b1b 0x1c3 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_abbrev 0x00001cde 0x1f9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_abbrev 0x00001ed7 0x2cb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_abbrev 0x000021a2 0x2a1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_abbrev 0x00002443 0x2d0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o +.debug_abbrev 0x00000000 0x1987 + .debug_abbrev 0x00000000 0x2cb ./Core/Src/gc9a01.o + .debug_abbrev 0x000002cb 0x242 ./Core/Src/main.o + .debug_abbrev 0x0000050d 0x20a ./Core/Src/stm32l4xx_hal_msp.o + .debug_abbrev 0x00000717 0x73 ./Core/Src/stm32l4xx_it.o + .debug_abbrev 0x0000078a 0x1b6 ./Core/Src/syscalls.o + .debug_abbrev 0x00000940 0xbc ./Core/Src/sysmem.o + .debug_abbrev 0x000009fc 0x11a ./Core/Src/system_stm32l4xx.o + .debug_abbrev 0x00000b16 0x24 ./Core/Startup/startup_stm32l452retxp.o + .debug_abbrev 0x00000b3a 0x242 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .debug_abbrev 0x00000d7c 0x31c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .debug_abbrev 0x00001098 0x1cb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .debug_abbrev 0x00001263 0x1f9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .debug_abbrev 0x0000145c 0x2cb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .debug_abbrev 0x00001727 0x260 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o -.debug_aranges 0x00000000 0xec8 +.debug_aranges 0x00000000 0x940 .debug_aranges - 0x00000000 0x140 ./Core/Src/FusionAhrs.o + 0x00000000 0xf8 ./Core/Src/gc9a01.o .debug_aranges - 0x00000140 0x58 ./Core/Src/icm20948.o + 0x000000f8 0x40 ./Core/Src/main.o .debug_aranges - 0x00000198 0x50 ./Core/Src/lcd_i2c.o + 0x00000138 0x50 ./Core/Src/stm32l4xx_hal_msp.o .debug_aranges - 0x000001e8 0x68 ./Core/Src/main.o + 0x00000188 0x60 ./Core/Src/stm32l4xx_it.o .debug_aranges - 0x00000250 0x58 ./Core/Src/moto_config.o + 0x000001e8 0xa8 ./Core/Src/syscalls.o .debug_aranges - 0x000002a8 0x40 ./Core/Src/stm32l4xx_hal_msp.o + 0x00000290 0x20 ./Core/Src/sysmem.o .debug_aranges - 0x000002e8 0x60 ./Core/Src/stm32l4xx_it.o + 0x000002b0 0x28 ./Core/Src/system_stm32l4xx.o .debug_aranges - 0x00000348 0xa8 ./Core/Src/syscalls.o + 0x000002d8 0x28 ./Core/Startup/startup_stm32l452retxp.o .debug_aranges - 0x000003f0 0x20 ./Core/Src/sysmem.o + 0x00000300 0x130 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_aranges - 0x00000410 0x28 ./Core/Src/system_stm32l4xx.o + 0x00000430 0x128 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_aranges - 0x00000438 0x28 ./Core/Startup/startup_stm32l452retxp.o + 0x00000558 0x58 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_aranges - 0x00000460 0x130 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x000005b0 0x128 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_aranges - 0x00000590 0x128 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x000006d8 0x90 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_aranges - 0x000006b8 0x58 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_aranges - 0x00000710 0x2a0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_aranges - 0x000009b0 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_aranges - 0x000009f8 0x128 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_aranges - 0x00000b20 0x90 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_aranges - 0x00000bb0 0xf0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_aranges - 0x00000ca0 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + 0x00000768 0x1d8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o .debug_rnglists - 0x00000000 0xb71 + 0x00000000 0x6ef .debug_rnglists - 0x00000000 0x104 ./Core/Src/FusionAhrs.o + 0x00000000 0xcc ./Core/Src/gc9a01.o .debug_rnglists - 0x00000104 0x40 ./Core/Src/icm20948.o + 0x000000cc 0x2b ./Core/Src/main.o .debug_rnglists - 0x00000144 0x38 ./Core/Src/lcd_i2c.o + 0x000000f7 0x3a ./Core/Src/stm32l4xx_hal_msp.o .debug_rnglists - 0x0000017c 0x4e ./Core/Src/main.o + 0x00000131 0x43 ./Core/Src/stm32l4xx_it.o .debug_rnglists - 0x000001ca 0x42 ./Core/Src/moto_config.o + 0x00000174 0x79 ./Core/Src/syscalls.o .debug_rnglists - 0x0000020c 0x2d ./Core/Src/stm32l4xx_hal_msp.o + 0x000001ed 0x13 ./Core/Src/sysmem.o .debug_rnglists - 0x00000239 0x43 ./Core/Src/stm32l4xx_it.o + 0x00000200 0x1a ./Core/Src/system_stm32l4xx.o .debug_rnglists - 0x0000027c 0x79 ./Core/Src/syscalls.o + 0x0000021a 0x19 ./Core/Startup/startup_stm32l452retxp.o .debug_rnglists - 0x000002f5 0x13 ./Core/Src/sysmem.o + 0x00000233 0xdf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .debug_rnglists - 0x00000308 0x1a ./Core/Src/system_stm32l4xx.o + 0x00000312 0xda ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .debug_rnglists - 0x00000322 0x19 ./Core/Startup/startup_stm32l452retxp.o + 0x000003ec 0x3f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o .debug_rnglists - 0x0000033b 0xdf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + 0x0000042b 0xdf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .debug_rnglists - 0x0000041a 0xda ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + 0x0000050a 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o .debug_rnglists - 0x000004f4 0x3f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_rnglists - 0x00000533 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_rnglists - 0x0000075b 0x35 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_rnglists - 0x00000790 0xdf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_rnglists - 0x0000086f 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_rnglists - 0x000008dc 0xba ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_rnglists - 0x00000996 0x1db ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + 0x00000577 0x178 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o -.debug_macro 0x00000000 0x2408b - .debug_macro 0x00000000 0x1ad ./Core/Src/FusionAhrs.o - .debug_macro 0x000001ad 0xad8 ./Core/Src/FusionAhrs.o - .debug_macro 0x00000c85 0x201 ./Core/Src/FusionAhrs.o - .debug_macro 0x00000e86 0x22 ./Core/Src/FusionAhrs.o - .debug_macro 0x00000ea8 0x5b ./Core/Src/FusionAhrs.o - .debug_macro 0x00000f03 0x2a ./Core/Src/FusionAhrs.o - .debug_macro 0x00000f2d 0x94 ./Core/Src/FusionAhrs.o - .debug_macro 0x00000fc1 0x43 ./Core/Src/FusionAhrs.o - .debug_macro 0x00001004 0x34 ./Core/Src/FusionAhrs.o - .debug_macro 0x00001038 0x190 ./Core/Src/FusionAhrs.o - .debug_macro 0x000011c8 0x57 ./Core/Src/FusionAhrs.o - .debug_macro 0x0000121f 0x370 ./Core/Src/FusionAhrs.o - .debug_macro 0x0000158f 0x16 ./Core/Src/FusionAhrs.o - .debug_macro 0x000015a5 0x4a ./Core/Src/FusionAhrs.o - .debug_macro 0x000015ef 0x34 ./Core/Src/FusionAhrs.o - .debug_macro 0x00001623 0x10 ./Core/Src/FusionAhrs.o - .debug_macro 0x00001633 0x58 ./Core/Src/FusionAhrs.o - .debug_macro 0x0000168b 0x8e ./Core/Src/FusionAhrs.o - .debug_macro 0x00001719 0x1c ./Core/Src/FusionAhrs.o - .debug_macro 0x00001735 0x185 ./Core/Src/FusionAhrs.o - .debug_macro 0x000018ba 0x186 ./Core/Src/FusionAhrs.o - .debug_macro 0x00001a40 0x22 ./Core/Src/FusionAhrs.o - .debug_macro 0x00001a62 0x103 ./Core/Src/FusionAhrs.o - .debug_macro 0x00001b65 0x6a ./Core/Src/FusionAhrs.o - .debug_macro 0x00001bcf 0x1df ./Core/Src/FusionAhrs.o - .debug_macro 0x00001dae 0x9a ./Core/Src/FusionAhrs.o - .debug_macro 0x00001e48 0x1d5 ./Core/Src/icm20948.o - .debug_macro 0x0000201d 0x1a7 ./Core/Src/icm20948.o - .debug_macro 0x000021c4 0x2e ./Core/Src/icm20948.o - .debug_macro 0x000021f2 0x28 ./Core/Src/icm20948.o - .debug_macro 0x0000221a 0x8e ./Core/Src/icm20948.o - .debug_macro 0x000022a8 0x51 ./Core/Src/icm20948.o - .debug_macro 0x000022f9 0x1c ./Core/Src/icm20948.o - .debug_macro 0x00002315 0x22 ./Core/Src/icm20948.o - .debug_macro 0x00002337 0xfb ./Core/Src/icm20948.o - .debug_macro 0x00002432 0x1011 ./Core/Src/icm20948.o - .debug_macro 0x00003443 0x11f ./Core/Src/icm20948.o - .debug_macro 0x00003562 0x16336 ./Core/Src/icm20948.o - .debug_macro 0x00019898 0x6d ./Core/Src/icm20948.o - .debug_macro 0x00019905 0x38fb ./Core/Src/icm20948.o - .debug_macro 0x0001d200 0x5c ./Core/Src/icm20948.o - .debug_macro 0x0001d25c 0x13fa ./Core/Src/icm20948.o - .debug_macro 0x0001e656 0x646 ./Core/Src/icm20948.o - .debug_macro 0x0001ec9c 0x1b9 ./Core/Src/icm20948.o - .debug_macro 0x0001ee55 0x168 ./Core/Src/icm20948.o - .debug_macro 0x0001efbd 0x26b ./Core/Src/icm20948.o - .debug_macro 0x0001f228 0x23d ./Core/Src/icm20948.o - .debug_macro 0x0001f465 0x241 ./Core/Src/icm20948.o - .debug_macro 0x0001f6a6 0x375 ./Core/Src/icm20948.o - .debug_macro 0x0001fa1b 0xd6 ./Core/Src/icm20948.o - .debug_macro 0x0001faf1 0x22c ./Core/Src/icm20948.o - .debug_macro 0x0001fd1d 0x61 ./Core/Src/icm20948.o - .debug_macro 0x0001fd7e 0xa5 ./Core/Src/icm20948.o - .debug_macro 0x0001fe23 0x122 ./Core/Src/icm20948.o - .debug_macro 0x0001ff45 0x364 ./Core/Src/icm20948.o - .debug_macro 0x000202a9 0x5cf ./Core/Src/icm20948.o - .debug_macro 0x00020878 0x44 ./Core/Src/icm20948.o - .debug_macro 0x000208bc 0x2eb ./Core/Src/icm20948.o - .debug_macro 0x00020ba7 0x2af ./Core/Src/lcd_i2c.o - .debug_macro 0x00020e56 0x61 ./Core/Src/lcd_i2c.o - .debug_macro 0x00020eb7 0x10 ./Core/Src/lcd_i2c.o - .debug_macro 0x00020ec7 0x3c ./Core/Src/lcd_i2c.o - .debug_macro 0x00020f03 0x20 ./Core/Src/lcd_i2c.o - .debug_macro 0x00020f23 0x302 ./Core/Src/main.o - .debug_macro 0x00021225 0x16 ./Core/Src/main.o - .debug_macro 0x0002123b 0x9e ./Core/Src/main.o - .debug_macro 0x000212d9 0x112 ./Core/Src/main.o - .debug_macro 0x000213eb 0x10 ./Core/Src/main.o - .debug_macro 0x000213fb 0x16 ./Core/Src/main.o - .debug_macro 0x00021411 0x16 ./Core/Src/main.o - .debug_macro 0x00021427 0x146 ./Core/Src/main.o - .debug_macro 0x0002156d 0x19b ./Core/Src/main.o - .debug_macro 0x00021708 0x56 ./Core/Src/main.o - .debug_macro 0x0002175e 0x94 ./Core/Src/main.o - .debug_macro 0x000217f2 0x6a ./Core/Src/main.o - .debug_macro 0x0002185c 0x18f ./Core/Src/moto_config.o - .debug_macro 0x000219eb 0x64 ./Core/Src/moto_config.o - .debug_macro 0x00021a4f 0x16 ./Core/Src/moto_config.o - .debug_macro 0x00021a65 0x1c ./Core/Src/moto_config.o - .debug_macro 0x00021a81 0x1c ./Core/Src/moto_config.o - .debug_macro 0x00021a9d 0x1d4 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x00021c71 0x1de ./Core/Src/stm32l4xx_it.o - .debug_macro 0x00021e4f 0x274 ./Core/Src/syscalls.o - .debug_macro 0x000220c3 0x10 ./Core/Src/syscalls.o - .debug_macro 0x000220d3 0x10 ./Core/Src/syscalls.o - .debug_macro 0x000220e3 0x10 ./Core/Src/syscalls.o - .debug_macro 0x000220f3 0x10 ./Core/Src/syscalls.o - .debug_macro 0x00022103 0x1c ./Core/Src/syscalls.o - .debug_macro 0x0002211f 0x52 ./Core/Src/syscalls.o - .debug_macro 0x00022171 0x22 ./Core/Src/syscalls.o - .debug_macro 0x00022193 0x10 ./Core/Src/syscalls.o - .debug_macro 0x000221a3 0x52 ./Core/Src/syscalls.o - .debug_macro 0x000221f5 0xcf ./Core/Src/syscalls.o - .debug_macro 0x000222c4 0x1c ./Core/Src/syscalls.o - .debug_macro 0x000222e0 0x3d ./Core/Src/syscalls.o - .debug_macro 0x0002231d 0x35 ./Core/Src/syscalls.o - .debug_macro 0x00022352 0x12c ./Core/Src/syscalls.o - .debug_macro 0x0002247e 0x16 ./Core/Src/syscalls.o - .debug_macro 0x00022494 0x16 ./Core/Src/syscalls.o - .debug_macro 0x000224aa 0x29 ./Core/Src/syscalls.o - .debug_macro 0x000224d3 0x10 ./Core/Src/syscalls.o - .debug_macro 0x000224e3 0x242 ./Core/Src/syscalls.o - .debug_macro 0x00022725 0x10 ./Core/Src/syscalls.o - .debug_macro 0x00022735 0x18a ./Core/Src/syscalls.o - .debug_macro 0x000228bf 0x16 ./Core/Src/syscalls.o - .debug_macro 0x000228d5 0xce ./Core/Src/syscalls.o - .debug_macro 0x000229a3 0x112 ./Core/Src/sysmem.o - .debug_macro 0x00022ab5 0x23c ./Core/Src/sysmem.o - .debug_macro 0x00022cf1 0x1c5 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x00022eb6 0x213 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x000230c9 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0002328e 0x1cc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0002345a 0x291 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x000236eb 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x000238b0 0x1e9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x00023a99 0x207 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x00023ca0 0x1fb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x00023e9b 0x1f0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o +.debug_macro 0x00000000 0x219d8 + .debug_macro 0x00000000 0x344 ./Core/Src/gc9a01.o + .debug_macro 0x00000344 0x1ad ./Core/Src/gc9a01.o + .debug_macro 0x000004f1 0x2e ./Core/Src/gc9a01.o + .debug_macro 0x0000051f 0x28 ./Core/Src/gc9a01.o + .debug_macro 0x00000547 0x8e ./Core/Src/gc9a01.o + .debug_macro 0x000005d5 0x51 ./Core/Src/gc9a01.o + .debug_macro 0x00000626 0x1c ./Core/Src/gc9a01.o + .debug_macro 0x00000642 0x22 ./Core/Src/gc9a01.o + .debug_macro 0x00000664 0xfb ./Core/Src/gc9a01.o + .debug_macro 0x0000075f 0x1011 ./Core/Src/gc9a01.o + .debug_macro 0x00001770 0x11f ./Core/Src/gc9a01.o + .debug_macro 0x0000188f 0x16336 ./Core/Src/gc9a01.o + .debug_macro 0x00017bc5 0x6d ./Core/Src/gc9a01.o + .debug_macro 0x00017c32 0x38fb ./Core/Src/gc9a01.o + .debug_macro 0x0001b52d 0x5c ./Core/Src/gc9a01.o + .debug_macro 0x0001b589 0x13fa ./Core/Src/gc9a01.o + .debug_macro 0x0001c983 0x646 ./Core/Src/gc9a01.o + .debug_macro 0x0001cfc9 0x1b9 ./Core/Src/gc9a01.o + .debug_macro 0x0001d182 0x168 ./Core/Src/gc9a01.o + .debug_macro 0x0001d2ea 0x26b ./Core/Src/gc9a01.o + .debug_macro 0x0001d555 0x23d ./Core/Src/gc9a01.o + .debug_macro 0x0001d792 0x241 ./Core/Src/gc9a01.o + .debug_macro 0x0001d9d3 0x375 ./Core/Src/gc9a01.o + .debug_macro 0x0001dd48 0xd6 ./Core/Src/gc9a01.o + .debug_macro 0x0001de1e 0x22c ./Core/Src/gc9a01.o + .debug_macro 0x0001e04a 0x61 ./Core/Src/gc9a01.o + .debug_macro 0x0001e0ab 0xa5 ./Core/Src/gc9a01.o + .debug_macro 0x0001e150 0x122 ./Core/Src/gc9a01.o + .debug_macro 0x0001e272 0x364 ./Core/Src/gc9a01.o + .debug_macro 0x0001e5d6 0x2fe ./Core/Src/gc9a01.o + .debug_macro 0x0001e8d4 0x5cf ./Core/Src/gc9a01.o + .debug_macro 0x0001eea3 0x44 ./Core/Src/gc9a01.o + .debug_macro 0x0001eee7 0x2eb ./Core/Src/gc9a01.o + .debug_macro 0x0001f1d2 0x94 ./Core/Src/gc9a01.o + .debug_macro 0x0001f266 0x124 ./Core/Src/gc9a01.o + .debug_macro 0x0001f38a 0x61 ./Core/Src/gc9a01.o + .debug_macro 0x0001f3eb 0x19b ./Core/Src/gc9a01.o + .debug_macro 0x0001f586 0x16 ./Core/Src/gc9a01.o + .debug_macro 0x0001f59c 0x3c ./Core/Src/gc9a01.o + .debug_macro 0x0001f5d8 0x20 ./Core/Src/gc9a01.o + .debug_macro 0x0001f5f8 0x1c ./Core/Src/gc9a01.o + .debug_macro 0x0001f614 0x10 ./Core/Src/gc9a01.o + .debug_macro 0x0001f624 0x1c ./Core/Src/gc9a01.o + .debug_macro 0x0001f640 0x16 ./Core/Src/gc9a01.o + .debug_macro 0x0001f656 0x146 ./Core/Src/gc9a01.o + .debug_macro 0x0001f79c 0x16 ./Core/Src/gc9a01.o + .debug_macro 0x0001f7b2 0x16 ./Core/Src/gc9a01.o + .debug_macro 0x0001f7c8 0x29 ./Core/Src/gc9a01.o + .debug_macro 0x0001f7f1 0x205 ./Core/Src/main.o + .debug_macro 0x0001f9f6 0x1e9 ./Core/Src/stm32l4xx_hal_msp.o + .debug_macro 0x0001fbdf 0x1f3 ./Core/Src/stm32l4xx_it.o + .debug_macro 0x0001fdd2 0x274 ./Core/Src/syscalls.o + .debug_macro 0x00020046 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00020056 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00020066 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00020076 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00020086 0x1c ./Core/Src/syscalls.o + .debug_macro 0x000200a2 0x52 ./Core/Src/syscalls.o + .debug_macro 0x000200f4 0x22 ./Core/Src/syscalls.o + .debug_macro 0x00020116 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00020126 0x52 ./Core/Src/syscalls.o + .debug_macro 0x00020178 0xcf ./Core/Src/syscalls.o + .debug_macro 0x00020247 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00020263 0x3d ./Core/Src/syscalls.o + .debug_macro 0x000202a0 0x35 ./Core/Src/syscalls.o + .debug_macro 0x000202d5 0x12c ./Core/Src/syscalls.o + .debug_macro 0x00020401 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00020411 0x242 ./Core/Src/syscalls.o + .debug_macro 0x00020653 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00020663 0x18a ./Core/Src/syscalls.o + .debug_macro 0x000207ed 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00020803 0xce ./Core/Src/syscalls.o + .debug_macro 0x000208d1 0x112 ./Core/Src/sysmem.o + .debug_macro 0x000209e3 0x23c ./Core/Src/sysmem.o + .debug_macro 0x00020c1f 0x1da ./Core/Src/system_stm32l4xx.o + .debug_macro 0x00020df9 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .debug_macro 0x00021021 0x1da ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .debug_macro 0x000211fb 0x1e1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .debug_macro 0x000213dc 0x1fe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .debug_macro 0x000215da 0x21c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .debug_macro 0x000217f6 0x1e2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o -.debug_line 0x00000000 0x12411 - .debug_line 0x00000000 0x13f0 ./Core/Src/FusionAhrs.o - .debug_line 0x000013f0 0x8aa ./Core/Src/icm20948.o - .debug_line 0x00001c9a 0x963 ./Core/Src/lcd_i2c.o - .debug_line 0x000025fd 0xc7b ./Core/Src/main.o - .debug_line 0x00003278 0x869 ./Core/Src/moto_config.o - .debug_line 0x00003ae1 0x810 ./Core/Src/stm32l4xx_hal_msp.o - .debug_line 0x000042f1 0x7f6 ./Core/Src/stm32l4xx_it.o - .debug_line 0x00004ae7 0x8ac ./Core/Src/syscalls.o - .debug_line 0x00005393 0x588 ./Core/Src/sysmem.o - .debug_line 0x0000591b 0x7e5 ./Core/Src/system_stm32l4xx.o - .debug_line 0x00006100 0x7a ./Core/Startup/startup_stm32l452retxp.o - .debug_line 0x0000617a 0xb4e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_line 0x00006cc8 0xce8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_line 0x000079b0 0xb4d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_line 0x000084fd 0x374e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_line 0x0000bc4b 0x8ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_line 0x0000c4f8 0xc4a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_line 0x0000d142 0x10f0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_line 0x0000e232 0x1498 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_line 0x0000f6ca 0x2d47 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o +.debug_line 0x00000000 0xa22c + .debug_line 0x00000000 0x104c ./Core/Src/gc9a01.o + .debug_line 0x0000104c 0x857 ./Core/Src/main.o + .debug_line 0x000018a3 0x88e ./Core/Src/stm32l4xx_hal_msp.o + .debug_line 0x00002131 0x827 ./Core/Src/stm32l4xx_it.o + .debug_line 0x00002958 0x8ac ./Core/Src/syscalls.o + .debug_line 0x00003204 0x588 ./Core/Src/sysmem.o + .debug_line 0x0000378c 0x816 ./Core/Src/system_stm32l4xx.o + .debug_line 0x00003fa2 0x7a ./Core/Startup/startup_stm32l452retxp.o + .debug_line 0x0000401c 0xb7f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .debug_line 0x00004b9b 0xd19 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .debug_line 0x000058b4 0xb7e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .debug_line 0x00006432 0xc7b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .debug_line 0x000070ad 0x1121 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .debug_line 0x000081ce 0x205e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o -.debug_str 0x00000000 0xd3ffc - .debug_str 0x00000000 0xd3ffc ./Core/Src/FusionAhrs.o - 0x8b2f (size before relaxing) - .debug_str 0x000d3ffc 0xc8c66 ./Core/Src/icm20948.o - .debug_str 0x000d3ffc 0xcbe37 ./Core/Src/lcd_i2c.o - .debug_str 0x000d3ffc 0xcdf42 ./Core/Src/main.o - .debug_str 0x000d3ffc 0x860d ./Core/Src/moto_config.o - .debug_str 0x000d3ffc 0xc9407 ./Core/Src/stm32l4xx_hal_msp.o - .debug_str 0x000d3ffc 0xc894e ./Core/Src/stm32l4xx_it.o - .debug_str 0x000d3ffc 0x99de ./Core/Src/syscalls.o - .debug_str 0x000d3ffc 0x777c ./Core/Src/sysmem.o - .debug_str 0x000d3ffc 0xc88dc ./Core/Src/system_stm32l4xx.o - .debug_str 0x000d3ffc 0x7f ./Core/Startup/startup_stm32l452retxp.o - .debug_str 0x000d3ffc 0xc941c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_str 0x000d3ffc 0xc90ac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_str 0x000d3ffc 0xc8a50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_str 0x000d3ffc 0xc9ad3 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_str 0x000d3ffc 0xc8de9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_str 0x000d3ffc 0xc8d7d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_str 0x000d3ffc 0xc8edc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_str 0x000d3ffc 0xc91a0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_str 0x000d3ffc 0xc9634 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o +.debug_str 0x00000000 0xd370a + .debug_str 0x00000000 0xd370a ./Core/Src/gc9a01.o + 0xcf1b9 (size before relaxing) + .debug_str 0x000d370a 0xcb0ef ./Core/Src/main.o + .debug_str 0x000d370a 0xcb1ab ./Core/Src/stm32l4xx_hal_msp.o + .debug_str 0x000d370a 0xca540 ./Core/Src/stm32l4xx_it.o + .debug_str 0x000d370a 0x99dc ./Core/Src/syscalls.o + .debug_str 0x000d370a 0x777a ./Core/Src/sysmem.o + .debug_str 0x000d370a 0xca4ce ./Core/Src/system_stm32l4xx.o + .debug_str 0x000d370a 0x7f ./Core/Startup/startup_stm32l452retxp.o + .debug_str 0x000d370a 0xcb00e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .debug_str 0x000d370a 0xcac9e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .debug_str 0x000d370a 0xca642 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .debug_str 0x000d370a 0xca96f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .debug_str 0x000d370a 0xcaace ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .debug_str 0x000d370a 0xcacdf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o .comment 0x00000000 0x43 - .comment 0x00000000 0x43 ./Core/Src/FusionAhrs.o + .comment 0x00000000 0x43 ./Core/Src/gc9a01.o 0x44 (size before relaxing) - .comment 0x00000043 0x44 ./Core/Src/icm20948.o - .comment 0x00000043 0x44 ./Core/Src/lcd_i2c.o .comment 0x00000043 0x44 ./Core/Src/main.o - .comment 0x00000043 0x44 ./Core/Src/moto_config.o .comment 0x00000043 0x44 ./Core/Src/stm32l4xx_hal_msp.o .comment 0x00000043 0x44 ./Core/Src/stm32l4xx_it.o .comment 0x00000043 0x44 ./Core/Src/syscalls.o @@ -4997,105 +5421,68 @@ LOAD C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o + .comment 0x00000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o -.debug_frame 0x00000000 0x5328 - .debug_frame 0x00000000 0x5bc ./Core/Src/FusionAhrs.o - .debug_frame 0x000005bc 0x12c ./Core/Src/icm20948.o - .debug_frame 0x000006e8 0x100 ./Core/Src/lcd_i2c.o - .debug_frame 0x000007e8 0x16c ./Core/Src/main.o - .debug_frame 0x00000954 0x14c ./Core/Src/moto_config.o - .debug_frame 0x00000aa0 0xd0 ./Core/Src/stm32l4xx_hal_msp.o - .debug_frame 0x00000b70 0x104 ./Core/Src/stm32l4xx_it.o - .debug_frame 0x00000c74 0x2ac ./Core/Src/syscalls.o - .debug_frame 0x00000f20 0x34 ./Core/Src/sysmem.o - .debug_frame 0x00000f54 0x58 ./Core/Src/system_stm32l4xx.o - .debug_frame 0x00000fac 0x498 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_frame 0x00001444 0x4e8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_frame 0x0000192c 0x14c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_frame 0x00001a78 0xc38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_frame 0x000026b0 0x100 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_frame 0x000027b0 0x4a4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_frame 0x00002c54 0x21c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_frame 0x00002e70 0x3d0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_frame 0x00003240 0x9f4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_frame 0x00003c34 0x90 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) - .debug_frame 0x00003cc4 0x60 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) - .debug_frame 0x00003d24 0x144 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) - .debug_frame 0x00003e68 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) - .debug_frame 0x00003e9c 0x6c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-printf.o) - .debug_frame 0x00003f08 0x7c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-snprintf.o) - .debug_frame 0x00003f84 0x88 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) - .debug_frame 0x0000400c 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) - .debug_frame 0x0000402c 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-localeconv.o) - .debug_frame 0x0000406c 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) - .debug_frame 0x00004098 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) - .debug_frame 0x000040d0 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) - .debug_frame 0x000040fc 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) - .debug_frame 0x00004128 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) - .debug_frame 0x00004154 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) - .debug_frame 0x00004174 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) - .debug_frame 0x000041a0 0xb0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) - .debug_frame 0x00004250 0x70 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) - .debug_frame 0x000042c0 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) - .debug_frame 0x000042f8 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-malloc.o) - .debug_frame 0x00004328 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) - .debug_frame 0x00004378 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) - .debug_frame 0x000043a8 0x260 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) - .debug_frame 0x00004608 0x90 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-svfprintf.o) - .debug_frame 0x00004698 0xa8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) - .debug_frame 0x00004740 0x5c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) - .debug_frame 0x0000479c 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) - .debug_frame 0x000047dc 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) - .debug_frame 0x00004808 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memmove.o) - .debug_frame 0x00004830 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) - .debug_frame 0x00004878 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) - .debug_frame 0x000048a4 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memcpy-stub.o) - .debug_frame 0x000048cc 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) - .debug_frame 0x0000490c 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-callocr.o) - .debug_frame 0x00004938 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mbtowc_r.o) - .debug_frame 0x00004980 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reallocr.o) - .debug_frame 0x000049bc 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) - .debug_frame 0x000049f8 0x64 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) - .debug_frame 0x00004a5c 0x58 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) - .debug_frame 0x00004ab4 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) - .debug_frame 0x00004ae0 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) - .debug_frame 0x00004b0c 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) - .debug_frame 0x00004b34 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-msizer.o) - .debug_frame 0x00004b54 0xcc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) - .debug_frame 0x00004c20 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) - .debug_frame 0x00004c5c 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_asin.o) - .debug_frame 0x00004ca4 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_atan2.o) - .debug_frame 0x00004cc4 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_pow.o) - .debug_frame 0x00004d0c 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-wf_sqrt.o) - .debug_frame 0x00004d44 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_fabs.o) - .debug_frame 0x00004d64 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_sin.o) - .debug_frame 0x00004d9c 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_finite.o) - .debug_frame 0x00004dbc 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_nan.o) - .debug_frame 0x00004ddc 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_sqrt.o) - .debug_frame 0x00004dfc 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_cos.o) - .debug_frame 0x00004e1c 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_sin.o) - .debug_frame 0x00004e3c 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_asin.o) - .debug_frame 0x00004e84 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_atan2.o) - .debug_frame 0x00004eb4 0x88 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_pow.o) - .debug_frame 0x00004f3c 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-ef_rem_pio2.o) - .debug_frame 0x00004f74 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_atan.o) - .debug_frame 0x00004fa0 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_scalbn.o) - .debug_frame 0x00004fc0 0x88 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-math_errf.o) - .debug_frame 0x00005048 0x5c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-kf_rem_pio2.o) - .debug_frame 0x000050a4 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a(libm_a-sf_floor.o) - .debug_frame 0x000050c4 0xac C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_addsubdf3.o) - .debug_frame 0x00005170 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_muldivdf3.o) - .debug_frame 0x000051c0 0xc4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_cmpdf2.o) - .debug_frame 0x00005284 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_unorddf2.o) - .debug_frame 0x000052a4 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_fixdfsi.o) - .debug_frame 0x000052c8 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) - .debug_frame 0x000052f4 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) +.debug_frame 0x00000000 0x3420 + .debug_frame 0x00000000 0x408 ./Core/Src/gc9a01.o + .debug_frame 0x00000408 0xa8 ./Core/Src/main.o + .debug_frame 0x000004b0 0x118 ./Core/Src/stm32l4xx_hal_msp.o + .debug_frame 0x000005c8 0x104 ./Core/Src/stm32l4xx_it.o + .debug_frame 0x000006cc 0x2ac ./Core/Src/syscalls.o + .debug_frame 0x00000978 0x34 ./Core/Src/sysmem.o + .debug_frame 0x000009ac 0x58 ./Core/Src/system_stm32l4xx.o + .debug_frame 0x00000a04 0x498 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o + .debug_frame 0x00000e9c 0x4e8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o + .debug_frame 0x00001384 0x14c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o + .debug_frame 0x000014d0 0x4a4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o + .debug_frame 0x00001974 0x21c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o + .debug_frame 0x00001b90 0x860 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o + .debug_frame 0x000023f0 0x90 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_float.o) + .debug_frame 0x00002480 0x60 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf_i.o) + .debug_frame 0x000024e0 0x144 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .debug_frame 0x00002624 0x34 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + .debug_frame 0x00002658 0x88 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .debug_frame 0x000026e0 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + .debug_frame 0x00002700 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-localeconv.o) + .debug_frame 0x00002740 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + .debug_frame 0x0000276c 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + .debug_frame 0x000027a4 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + .debug_frame 0x000027d0 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + .debug_frame 0x000027fc 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + .debug_frame 0x00002828 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + .debug_frame 0x00002848 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + .debug_frame 0x00002874 0xb0 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .debug_frame 0x00002924 0x70 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-dtoa.o) + .debug_frame 0x00002994 0x38 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + .debug_frame 0x000029cc 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-malloc.o) + .debug_frame 0x000029fc 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .debug_frame 0x00002a4c 0x30 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + .debug_frame 0x00002a7c 0x260 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mprec.o) + .debug_frame 0x00002cdc 0x5c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .debug_frame 0x00002d38 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-locale.o) + .debug_frame 0x00002d80 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + .debug_frame 0x00002dac 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memcpy-stub.o) + .debug_frame 0x00002dd4 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-assert.o) + .debug_frame 0x00002e14 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-callocr.o) + .debug_frame 0x00002e40 0x48 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mbtowc_r.o) + .debug_frame 0x00002e88 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wctomb_r.o) + .debug_frame 0x00002ec4 0x64 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fprintf.o) + .debug_frame 0x00002f28 0x28 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-abort.o) + .debug_frame 0x00002f50 0xa8 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-nano-vfprintf.o) + .debug_frame 0x00002ff8 0x40 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wbuf.o) + .debug_frame 0x00003038 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-wsetup.o) + .debug_frame 0x00003064 0xcc C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signal.o) + .debug_frame 0x00003130 0x3c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-signalr.o) + .debug_frame 0x0000316c 0x58 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-makebuf.o) + .debug_frame 0x000031c4 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fstatr.o) + .debug_frame 0x000031f0 0x2c C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-isattyr.o) + .debug_frame 0x0000321c 0xac C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_addsubdf3.o) + .debug_frame 0x000032c8 0x50 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_muldivdf3.o) + .debug_frame 0x00003318 0xc4 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_cmpdf2.o) + .debug_frame 0x000033dc 0x20 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_unorddf2.o) + .debug_frame 0x000033fc 0x24 C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_arm_fixdfsi.o) .debug_line_str 0x00000000 0x63

Acok!kAfe4?wVXEq#>Thv@-S9h;T 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%0A19JJxO&1eMa!_fl4&161&30-GXf!riy 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 I$5X?90TO1^1^@s6 literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/gc9a01.su b/Debug/Core/Src/gc9a01.su index e69de29..118cd23 100644 --- a/Debug/Core/Src/gc9a01.su +++ b/Debug/Core/Src/gc9a01.su @@ -0,0 +1,28 @@ +../Core/Src/gc9a01.c:19:20:GC9A01_Select 8 static +../Core/Src/gc9a01.c:22:20:GC9A01_Unselect 8 static +../Core/Src/gc9a01.c:25:20:GC9A01_DC_Command 8 static +../Core/Src/gc9a01.c:28:20:GC9A01_DC_Data 8 static +../Core/Src/gc9a01.c:32:13:GC9A01_WriteCommand 16 static +../Core/Src/gc9a01.c:39:13:GC9A01_WriteData 16 static +../Core/Src/gc9a01.c:46:13:GC9A01_WriteDataBuffer 16 static +../Core/Src/gc9a01.c:54:13:GC9A01_SetAddressWindow 32 static +../Core/Src/gc9a01.c:66:6:GC9A01_Init 16 static +../Core/Src/gc9a01.c:99:6:GC9A01_Reset 8 static +../Core/Src/gc9a01.c:106:6:GC9A01_DisplayOn 8 static +../Core/Src/gc9a01.c:107:6:GC9A01_DisplayOff 8 static +../Core/Src/gc9a01.c:109:6:GC9A01_SetRotation 16 static +../Core/Src/gc9a01.c:120:6:GC9A01_FillRect 40 static +../Core/Src/gc9a01.c:146:6:GC9A01_FillScreen 24 static +../Core/Src/gc9a01.c:151:6:GC9A01_FillCircleScreen 72 static +../Core/Src/gc9a01.c:193:6:GC9A01_SetPixel 24 static +../Core/Src/gc9a01.c:203:6:GC9A01_DrawLine 40 static +../Core/Src/gc9a01.c:218:6:GC9A01_DrawRect 32 static +../Core/Src/gc9a01.c:225:6:GC9A01_DrawCircle 40 static +../Core/Src/gc9a01.c:255:6:GC9A01_FillCircle 32 static +../Core/Src/gc9a01.c:265:6:GC9A01_DrawChar 48 static +../Core/Src/gc9a01.c:281:6:GC9A01_DrawString 40 static +../Core/Src/gc9a01.c:289:10:GC9A01_RGB565 16 static +../Core/Src/gc9a01.c:293:6:GC9A01_IsInCircle 24 static +../Core/Src/gc9a01.c:300:6:GC9A01_DrawGauge 88 static +../Core/Src/gc9a01.c:320:6:GC9A01_DrawAngleIndicator 48 static +../Core/Src/gc9a01.c:340:6:GC9A01_DrawStateIndicator 32 static diff --git a/Debug/Core/Src/icm20948.o b/Debug/Core/Src/icm20948.o index 5d967b9655378faf5ab368911628371f69a894ac..f99ad16f19f78dbfd3d7782c6df9696609ed8145 100644 GIT binary patch delta 51128 zcmY&=cU)7+_cj*=LJdL)C4>?J5&{xHh_q0Ht72R1buDXO+uGKO1rStJjuk5^pn|<) z$BG5Pt{_FlE+S%Y?{mJtzg|Cn?l3dwJg3auDQD)UFhzeqMZe5VXxQierFrZ2!z>Ks zWMFD=zrUG*g~9*-&sZ=%ao^ma`SiSI28L>fNYok&q8#dIWG^hEzm5Jdw7o=ojCwh3 zX=P!sTDXIHk%_0HV6f(Ye_I%c1IgWZy6_jRH})6q(=}rU;XBnC|0#=GZ($%9H1GJY ziGfjYGe<)MgBHfEb|Ddx=}(hrnafaf1LJ6m5+F*1xt|OTjN|^7aS&W-mq|#X&nOFn zW(Lh`ei|DXcW-tKjOLHBc|7{=?|Iy6Ac#`vVPI1Fzf8pc1e=t* zu;6G2o?zw(kVR%CLiK^}=7ECHlNMTx6iyvzvQ-i&~788JU!CHZ^E&)cnh1m}daFMh2}%8sqt%tZd|wpSPIf z?^%`to;zBb;rVwbBRuB^GR*)v*N(Wxe^;3>@91e3cpjR{&n`5=MrAU2(Et6t#ztjX z{+j6vRHk^2rBWLYlc8EJSw~-NR8|3gOgSrwW!VfOf7^MT|1#m~u&yFJKR#*3)u)*G zTw7nryygEB8IUEB+m0N?R`^_Ju)y`K^DNS! zJo6eeP5R8w^PUVgg8q_t2tl+!5^U>J$6(V1erCO7gf?_d^0(Kzef)RxN<%y+{O|7; z-B{q_3|7S7oXefwQBON>%UNQE{*HDqGDxSzb}Dr4!*=t9uM{SgTi)NzK(?n@a1ITX zdPK@|xa3R)myB%2&&8XWcTNVo`-wjrkhPpK`?cnBM?IIX`N8fxMdzjA!p$suxv+*@ z?Cm=*{-2+X{$_jcTQKVp6DI$9jDp@62Pa_XYf% zPYdilgc-EmJ{Y~Q%06cB<2Fp+b2{^mJI+e=AIv3>qgkEZC;8d%zxMqwh-up0W=%{( zSnjD7Out|O{~aF2z3cW+reFOJ8-22Y>BYq~*TLCxu?>@2#Pf3(?R1a}+vu``+|W)- z&mCF|KIH7EQYY20l94inl8)!wrseLvBqFx9)=@>L<(~b zcZ_(*G#8Ka)7un7h{3o_40Z;8Ql@kGoF7kE|NI1&JL}*7y|4yGj@Lz?_PW7Yb?6M( z*74;#==$gKWR&zQlB1+o1c9cv`Bz}|v5o?N-@&8Mvi(+IR$_$?V!gS;nqK3dMivk0zK;m*EN8DCv-?aVT15)C(L{=d^wKfn{Y1Q94Y>L zT^#_{)^cb3J^H}~kdC=;4FmtlKLI_)j_nQnahpdO{~xtt#|cpT?|cIaO?hVvUjw56 z!)Vk6Hp_s|f;PZg|ATE_cnMI(6E8splSKv4Ui6ASx+DlkDZ;g%5JhWUmGVx<0G20w zTZK-1Lb!`*&Ztxv`VYEDlhBPGx<*A->;Ov8^}*n8-QNL1gHs1UK*%ps&}w(z1$vv? z#(0K$6oWF%D+T3o57~w7|Dhgkfzo9;kg;0$oB$bH1Z_N$UBY|X=%x`W=!Tn07)W2; zf`cn%V2qb?S8dn56979UWI$ZfnUR>b*-!S%>`^M89f-d@JRU%p>Mjj&A1eGom)%vO zPF+!QQP@LY-4!Aljm!&S1bHY_%Fm~uz$!!8CDy}mHHH_50W8n3G6ID8hG{fj zp$q+$giMv8(P*gn*s!iU=${#`GeJ|nHk@k%i#{1jRzSbxX8rG>qop(}%7R-KH#6{7qC5G@srqhMugm#oFeR0s*Lq0}S6Cm%dj z!k8BDSFPZ9jM9|x!f(2!REU#fL3r5E>^u5KxnVf{RLa!ZkD%gx!)8fferWiB$Ega# z0$1qv$Z+^sSX*Uy<|Xv4G5khxo?2ls&A_u49q?2Mo9L0JO1X^ttFjvja1L_p(_A`FN@1rl+Aqt68IAYS2>(%z zmrm$NHF#!`YfBj#ExctPVLz>EIYLm<@0R+|M`IGlh|7G)o zMM}(*3i6$W_imnvaR)&iB?-ct)I